add tests for scratch users and migrate getUsers,isInGroup to use it

This commit is contained in:
Colin Kuskie 2006-04-07 20:42:36 +00:00
parent adea847875
commit e5e9cd9b51
3 changed files with 65 additions and 15 deletions

View file

@ -286,20 +286,6 @@ sub isInGroup {
return 1;
}
}
### Check Scratch Variables
if ($group->scratchFilter()) {
my $scratchFilter = $group->scratchFilter();
$scratchFilter =~ s/\s//g;
my @vars = split(";",$scratchFilter);
foreach my $var (@vars) {
my ($name, $value) = split(/\=/,$var);
if ($self->session->scratch->get($name) eq $value) {
$isInGroup->{$uid}{$gid} = 1;
$self->session->stow->set("isInGroup",$isInGroup);
return 1;
}
}
}
### Check ldap
if ($group->get("ldapGroup") && $group->get("ldapGroupProperty")) {
# skip if not logged in
@ -355,6 +341,13 @@ sub isInGroup {
$self->session->stow->set("isInGroup",$isInGroup);
return 1 if ($isInGroup->{$uid}{$gid});
}
if (my @scratchUsers = @{ $group->getScratchUsers() }) {
foreach my $extUserId ( @scratchUsers ) {
$isInGroup->{$extUserId}{$gid} = 1;
}
$self->session->stow->set("isInGroup",$isInGroup);
return 1 if ($isInGroup->{$uid}{$gid});
}
### Check for groups of groups.
my $groups = $group->getGroupsIn(1);
foreach (@{$groups}) {