version 1.1048, 2009/12/30 18:01:17
|
version 1.1048.2.2, 2010/01/16 15:08:57
|
Line 4038 sub role_status {
|
Line 4038 sub role_status {
|
); |
); |
my $spec=$$role.'.'.$$where; |
my $spec=$$role.'.'.$$where; |
my ($tdummy,$tdomain,$trest)=split(/\//,$$where); |
my ($tdummy,$tdomain,$trest)=split(/\//,$$where); |
if ($$role eq 'gr') { |
|
my %rolehash = &get('roles',[$$where.'_'.$$role],$env{'user.domain'}, |
|
$env{'user.name'})=@_; |
|
my ($trole) = split('_',$role,1); |
|
(undef,my $group_privs) = split(/\//,$trole); |
|
$group_privs = &unescape($group_privs); |
|
} |
|
if ($$role =~ /^cr\//) { |
if ($$role =~ /^cr\//) { |
&custom_roleprivs(\%allroles,$$role,$tdomain,$trest,$spec,$$where); |
&custom_roleprivs(\%allroles,$$role,$tdomain,$trest,$spec,$$where); |
} elsif ($$role eq 'gr') { |
} elsif ($$role eq 'gr') { |
Line 4076 sub role_status {
|
Line 4069 sub role_status {
|
} |
} |
} |
} |
|
|
|
sub curr_role_status { |
|
my ($start,$end,$refresh,$then) = @_; |
|
if (($start) && ($start<0)) { return 'deleted' }; |
|
my $status = 'active'; |
|
if (($end) && ($end<=$then)) { |
|
$status = 'previous'; |
|
} |
|
if (($start) && ($refresh<$start)) { |
|
$status = 'future'; |
|
} |
|
return $status; |
|
} |
|
|
|
sub gather_roleprivs { |
|
my ($allroles,$allgroups,$userroles,$area,$role,$tstart,$tend) = @_; |
|
return unless ((ref($allroles) eq 'HASH') && (ref($allgroups) eq 'HASH') && (ref($userroles) eq 'HASH')); |
|
if (($area ne '') && ($role ne '')) { |
|
my $spec = $role.'.'.$area; |
|
my ($tdummy,$tdomain,$trest)=split(/\//,$area); |
|
if ($role =~ /^cr\//) { |
|
&custom_roleprivs($allroles,$role,$tdomain,$trest,$spec,$area); |
|
} elsif ($role eq 'gr') { |
|
my %rolehash = &get('roles',[$area.'_'.$role],$env{'user.domain'}, |
|
$env{'user.name'}); |
|
my $trole = split('_',$rolehash{$area.'_'.$role},1); |
|
(undef,my $group_privs) = split(/\//,$trole); |
|
$group_privs = &unescape($group_privs); |
|
&group_roleprivs($allgroups,$area,$group_privs,$tend,$tstart); |
|
} else { |
|
&standard_roleprivs($allroles,$role,$tdomain,$spec,$trest,$area); |
|
} |
|
} |
|
return; |
|
} |
|
|
sub check_adhoc_privs { |
sub check_adhoc_privs { |
my ($cdom,$cnum,$then,$refresh,$now,$checkrole) = @_; |
my ($cdom,$cnum,$then,$refresh,$now,$checkrole) = @_; |
my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum; |
my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum; |
Line 6263 sub assignrole {
|
Line 6291 sub assignrole {
|
} |
} |
} elsif (($selfenroll == 1) && ($role eq 'st') && ($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) { |
} elsif (($selfenroll == 1) && ($role eq 'st') && ($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) { |
$refused = ''; |
$refused = ''; |
|
} elsif (($selfenroll == 1) && ($role eq 'st') && ($cdom eq 'gci') && ($cnum eq '1H96711d710194bfegcil1')) { |
|
if ($env{'request.role'} eq 'cc./gci/9615072b469884921gcil1') { |
|
$refused = ''; |
|
} |
} elsif ($context eq 'requestcourses') { |
} elsif ($context eq 'requestcourses') { |
my @possroles = ('st','ta','ep','in','cc','co'); |
my @possroles = ('st','ta','ep','in','cc','co'); |
if ((grep(/^\Q$role\E$/,@possroles)) && ($env{'user.name'} ne '' && $env{'user.domain'} ne '')) { |
if ((grep(/^\Q$role\E$/,@possroles)) && ($env{'user.name'} ne '' && $env{'user.domain'} ne '')) { |