Finally figured out how to become a group admin, and set a test for it.

Updated Secondary Admin docs to include all details for that.
More placeholder conversions, all backed by test code.
This commit is contained in:
Colin Kuskie 2006-03-18 06:07:01 +00:00
parent e8a364f526
commit 9711a237de
3 changed files with 25 additions and 11 deletions

View file

@ -152,9 +152,9 @@ sub addUsers {
my $expireOffset = shift || $self->get("expireOffset");
foreach my $uid (@{$users}) {
next if ($uid eq '1' and !isIn($self->getId, 1, 7));
my ($isIn) = $self->session->db->quickArray("select count(*) from groupings where groupId=".$self->session->db->quote($self->getId)." and userId=".$self->session->db->quote($uid));
my ($isIn) = $self->session->db->quickArray("select count(*) from groupings where groupId=? and userId=?", [$self->getId, $uid]);
unless ($isIn) {
$self->session->db->write("insert into groupings (groupId,userId,expireDate) values (".$self->session->db->quote($self->getId).", ".$self->session->db->quote($uid).", ".($self->session->datetime->time()+$expireOffset).")");
$self->session->db->write("insert into groupings (groupId,userId,expireDate) values (?,?,?)", [$self->getId, $uid, ($self->session->datetime->time()+$expireOffset)]);
} else {
$self->userGroupExpireDate($uid,($self->session->datetime->time()+$expireOffset));
}
@ -438,7 +438,7 @@ sub find {
my $class = shift;
my $session = shift;
my $name = shift;
my ($groupId) = $session->db->quickArray("select groupId from groups where groupName=".$session->db->quote($name));
my ($groupId) = $session->db->quickArray("select groupId from groups where groupName=?",[$name]);
return WebGUI::Group->new($session,$groupId);
}
@ -954,10 +954,10 @@ sub userIsAdmin {
my $userId = shift || $self->session->user->userId;
my $value = shift;
if ($value ne "") {
$self->session->db->write("update groupings set groupAdmin=".$self->session->db->quote($value)." where groupId=".$self->session->db->quote($self->getId)." and userId=".$self->session->db->quote($userId));
$self->session->db->write("update groupings set groupAdmin=? where groupId=? and userId=?",[$value, $self->getId, $userId]);
return $value;
} else {
my ($admin) = $self->session->db->quickArray("select groupAdmin from groupings where groupId=".$self->session->db->quote($self->getId)." and userId=".$self->session->db->quote($userId));
my ($admin) = $self->session->db->quickArray("select groupAdmin from groupings where groupId=? and userId=?", [$self->getId, $userId]);
return $admin;
}
}

View file

@ -1281,8 +1281,8 @@ When users are added to the system they are put into the registered users group.
<b>Secondary Admins</b><br> Users in the Secondary Admins group may
add new users, but cannot edit users. Also, if you are a Secondary
Admin, you can be set as the Secondary Admin for a group and you may
modify the membership of that group.
Admin and are a member of a different group, you can be set as an admin for that group. This
will allow you to add or remove members from that group.
<p>
<b>Style Managers</b><br>

View file

@ -18,7 +18,7 @@ use WebGUI::Utility;
use WebGUI::User;
use WebGUI::Group;
use Test::More tests => 46; # increment this value for each test you create
use Test::More tests => 50; # increment this value for each test you create
use Test::Deep;
my $session = WebGUI::Test->session;
@ -140,12 +140,26 @@ cmp_bag($gB->getGroupsIn(1), [$gA->getId, $gC->getId, $gZ->getId, $gY->getId, $g
$gX->addGroups([$gA->getId]);
cmp_bag($gX->getGroupsIn(), [3], 'Not able to add B tree under Z tree under X');
$gX->userIsAdmin(1, "yes");
#$gX->userIsAdmin(1, "yes");
ok(!$gX->userIsAdmin(1), "userIsAdmin: Visitor is not allowed to be a Group Admin");
#ok(!$gX->userIsAdmin(1), "userIsAdmin: Visitor is not allowed to be a Group Admin");
my $user = WebGUI::User->new($session, "new");
$user->addToGroups([]);
$gX->userIsAdmin($user->userId, "yes");
ok(!$gX->userIsAdmin($user->userId), "userIsAdmin: User who isn't secondary admin can't be group admin");
$user->addToGroups([12]);
ok($user->isInGroup(12), "userIsAdmin: Added dude to Secondary Admins");
$gX->userIsAdmin($user->userId, 1);
ok(!$gX->userIsAdmin($user->userId), "userIsAdmin: User must be member of group to be group admin");
$user->addToGroups([$gX->getId]);
ok($user->isInGroup($gX->getId), "userIsAdmin: Added dude to gX");
$gX->userIsAdmin($user->userId, 1);
ok($gX->userIsAdmin($user->userId), "userIsAdmin: Dude set to be group admin for gX");
$user->delete;
END {