version 1.385, 2003/07/02 15:25:46
|
version 1.393, 2003/07/20 00:39:02
|
Line 1425 sub devalidate {
|
Line 1425 sub devalidate {
|
my ($symb,$uname,$udom)=@_; |
my ($symb,$uname,$udom)=@_; |
my $cid=$ENV{'request.course.id'}; |
my $cid=$ENV{'request.course.id'}; |
if ($cid) { |
if ($cid) { |
# delete the stored spreadsheets for |
# delete the stored spreadsheets for |
# - the student level sheet of this user in course's homespace |
# - the student level sheet of this user in course's homespace |
# - the assessment level sheet for this resource |
# - the assessment level sheet for this resource |
# for this user in user's homespace |
# for this user in user's homespace |
my $key=$uname.':'.$udom.':'; |
my $key=$uname.':'.$udom.':'; |
my $status= |
my $status= |
&del('nohist_calculatedsheets', |
&del('nohist_calculatedsheets', |
[$key.'studentcalc'], |
[$key.'studentcalc:'], |
$ENV{'course.'.$cid.'.domain'}, |
$ENV{'course.'.$cid.'.domain'}, |
$ENV{'course.'.$cid.'.num'}) |
$ENV{'course.'.$cid.'.num'}) |
.' '. |
.' '. |
&del('nohist_calculatedsheets_'.$cid, |
&del('nohist_calculatedsheets_'.$cid, |
[$key.'assesscalc:'.$symb]); |
[$key.'assesscalc:'.$symb],$udom,$uname); |
unless ($status eq 'ok ok') { |
unless ($status eq 'ok ok') { |
&logthis('Could not devalidate spreadsheet '. |
&logthis('Could not devalidate spreadsheet '. |
$uname.' at '.$udom.' for '. |
$uname.' at '.$udom.' for '. |
Line 1936 sub rolesinit {
|
Line 1936 sub rolesinit {
|
my ($tdummy,$tdomain,$trest)=split(/\//,$area); |
my ($tdummy,$tdomain,$trest)=split(/\//,$area); |
if ($trole =~ /^cr\//) { |
if ($trole =~ /^cr\//) { |
my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$trole); |
my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$trole); |
my $homsvr=homeserver($rauthor,$rdomain); |
my $homsvr=homeserver($rauthor,$rdomain); |
if ($hostname{$homsvr} ne '') { |
if ($hostname{$homsvr} ne '') { |
my $roledef= |
my ($rdummy,$roledef)= |
reply("get:$rdomain:$rauthor:roles:rolesdef_$rrole", |
&get('roles',["rolesdef_$rrole"],$rdomain,$rauthor); |
$homsvr); |
|
if (($roledef ne 'con_lost') && ($roledef ne '')) { |
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
my ($syspriv,$dompriv,$coursepriv)= |
my ($syspriv,$dompriv,$coursepriv)= |
split(/\_/,unescape($roledef)); |
split(/\_/,$roledef); |
if (defined($syspriv)) { |
if (defined($syspriv)) { |
$allroles{'cm./'}.=':'.$syspriv; |
$allroles{'cm./'}.=':'.$syspriv; |
$allroles{$spec.'./'}.=':'.$syspriv; |
$allroles{$spec.'./'}.=':'.$syspriv; |
Line 2521 sub is_on_map {
|
Line 2521 sub is_on_map {
|
sub definerole { |
sub definerole { |
if (allowed('mcr','/')) { |
if (allowed('mcr','/')) { |
my ($rolename,$sysrole,$domrole,$courole)=@_; |
my ($rolename,$sysrole,$domrole,$courole)=@_; |
foreach (split('/',$sysrole)) { |
foreach (split(':',$sysrole)) { |
my ($crole,$cqual)=split(/\&/,$_); |
my ($crole,$cqual)=split(/\&/,$_); |
if ($pr{'cr:s'}!~/$crole/) { return "refused:s:$crole"; } |
if ($pr{'cr:s'}!~/$crole/) { return "refused:s:$crole"; } |
if ($pr{'cr:s'}=~/$crole\&/) { |
if ($pr{'cr:s'}=~/$crole\&/) { |
Line 2530 sub definerole {
|
Line 2530 sub definerole {
|
} |
} |
} |
} |
} |
} |
foreach (split('/',$domrole)) { |
foreach (split(':',$domrole)) { |
my ($crole,$cqual)=split(/\&/,$_); |
my ($crole,$cqual)=split(/\&/,$_); |
if ($pr{'cr:d'}!~/$crole/) { return "refused:d:$crole"; } |
if ($pr{'cr:d'}!~/$crole/) { return "refused:d:$crole"; } |
if ($pr{'cr:d'}=~/$crole\&/) { |
if ($pr{'cr:d'}=~/$crole\&/) { |
Line 2539 sub definerole {
|
Line 2539 sub definerole {
|
} |
} |
} |
} |
} |
} |
foreach (split('/',$courole)) { |
foreach (split(':',$courole)) { |
my ($crole,$cqual)=split(/\&/,$_); |
my ($crole,$cqual)=split(/\&/,$_); |
if ($pr{'cr:c'}!~/$crole/) { return "refused:c:$crole"; } |
if ($pr{'cr:c'}!~/$crole/) { return "refused:c:$crole"; } |
if ($pr{'cr:c'}=~/$crole\&/) { |
if ($pr{'cr:c'}=~/$crole\&/) { |
Line 2651 sub assignrole {
|
Line 2651 sub assignrole {
|
my ($udom,$uname,$url,$role,$end,$start,$deleteflag)=@_; |
my ($udom,$uname,$url,$role,$end,$start,$deleteflag)=@_; |
my $mrole; |
my $mrole; |
if ($role =~ /^cr\//) { |
if ($role =~ /^cr\//) { |
unless (&allowed('ccr',$url)) { |
my $cwosec=$url; |
|
$cwosec=~s/^\/(\w+)\/(\w+)\/.*/$1\/$2/; |
|
unless (&allowed('ccr',$cwosec)) { |
&logthis('Refused custom assignrole: '. |
&logthis('Refused custom assignrole: '. |
$udom.' '.$uname.' '.$url.' '.$role.' '.$end.' '.$start.' by '. |
$udom.' '.$uname.' '.$url.' '.$role.' '.$end.' '.$start.' by '. |
$ENV{'user.name'}.' at '.$ENV{'user.domain'}); |
$ENV{'user.name'}.' at '.$ENV{'user.domain'}); |
Line 2732 sub modifyuser {
|
Line 2734 sub modifyuser {
|
my ($udom, $uname, $uid, |
my ($udom, $uname, $uid, |
$umode, $upass, $first, |
$umode, $upass, $first, |
$middle, $last, $gene, |
$middle, $last, $gene, |
$forceid, $desiredhome)=@_; |
$forceid, $desiredhome, $email)=@_; |
$udom=~s/\W//g; |
$udom=~s/\W//g; |
$uname=~s/\W//g; |
$uname=~s/\W//g; |
&logthis('Call to modify user '.$udom.', '.$uname.', '.$uid.', '. |
&logthis('Call to modify user '.$udom.', '.$uname.', '.$uid.', '. |
Line 2774 sub modifyuser {
|
Line 2776 sub modifyuser {
|
} |
} |
$uhome=&homeserver($uname,$udom,'true'); |
$uhome=&homeserver($uname,$udom,'true'); |
if (($uhome eq '') || ($uhome eq 'no_host') || ($uhome ne $unhome)) { |
if (($uhome eq '') || ($uhome eq 'no_host') || ($uhome ne $unhome)) { |
return 'error: verify home'; |
return 'error: unable verify users home machine.'; |
} |
} |
} # End of creation of new user |
} # End of creation of new user |
# ---------------------------------------------------------------------- Add ID |
# ---------------------------------------------------------------------- Add ID |
Line 2784 sub modifyuser {
|
Line 2786 sub modifyuser {
|
if (($uidhash{$uname}) && ($uidhash{$uname}!~/error\:/) |
if (($uidhash{$uname}) && ($uidhash{$uname}!~/error\:/) |
&& (!$forceid)) { |
&& (!$forceid)) { |
unless ($uid eq $uidhash{$uname}) { |
unless ($uid eq $uidhash{$uname}) { |
return 'error: mismatch '.$uidhash{$uname}.' versus '.$uid; |
return 'error: user id "'.$uid.'" does not match '. |
|
'current user id "'.$uidhash{$uname}.'".'; |
} |
} |
} else { |
} else { |
&idput($udom,($uname => $uid)); |
&idput($udom,($uname => $uid)); |
Line 2800 sub modifyuser {
|
Line 2803 sub modifyuser {
|
} else { |
} else { |
%names = @tmp; |
%names = @tmp; |
} |
} |
if (defined($first)) { $names{'firstname'} = $first; } |
# |
|
# Make sure to not trash student environment if instructor does not bother |
|
# to supply name and email information |
|
# |
|
if ($first) { $names{'firstname'} = $first; } |
if (defined($middle)) { $names{'middlename'} = $middle; } |
if (defined($middle)) { $names{'middlename'} = $middle; } |
if (defined($last)) { $names{'lastname'} = $last; } |
if ($last) { $names{'lastname'} = $last; } |
if (defined($gene)) { $names{'generation'} = $gene; } |
if (defined($gene)) { $names{'generation'} = $gene; } |
|
if ($email) { $names{'notification'} = $email; |
|
$names{'critnotification'} = $email; } |
|
|
my $reply = &put('environment', \%names, $udom,$uname); |
my $reply = &put('environment', \%names, $udom,$uname); |
if ($reply ne 'ok') { return 'error: '.$reply; } |
if ($reply ne 'ok') { return 'error: '.$reply; } |
&logthis('Success modifying user '.$udom.', '.$uname.', '.$uid.', '. |
&logthis('Success modifying user '.$udom.', '.$uname.', '.$uid.', '. |
Line 2817 sub modifyuser {
|
Line 2827 sub modifyuser {
|
|
|
sub modifystudent { |
sub modifystudent { |
my ($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene,$usec, |
my ($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene,$usec, |
$end,$start,$forceid,$desiredhome)=@_; |
$end,$start,$forceid,$desiredhome,$email)=@_; |
my $cid=''; |
my $cid=''; |
unless ($cid=$ENV{'request.course.id'}) { |
unless ($cid=$ENV{'request.course.id'}) { |
return 'not_in_class'; |
return 'not_in_class'; |
Line 2825 sub modifystudent {
|
Line 2835 sub modifystudent {
|
# --------------------------------------------------------------- Make the user |
# --------------------------------------------------------------- Make the user |
my $reply=&modifyuser |
my $reply=&modifyuser |
($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene,$forceid, |
($udom,$uname,$uid,$umode,$upass,$first,$middle,$last,$gene,$forceid, |
$desiredhome); |
$desiredhome,$email); |
unless ($reply eq 'ok') { return $reply; } |
unless ($reply eq 'ok') { return $reply; } |
# This will cause &modify_student_enrollment to get the uid from the |
# This will cause &modify_student_enrollment to get the uid from the |
# students environment |
# students environment |
Line 3196 sub clear_EXT_cache_status {
|
Line 3206 sub clear_EXT_cache_status {
|
sub EXT_cache_status { |
sub EXT_cache_status { |
my ($target_domain,$target_user) = @_; |
my ($target_domain,$target_user) = @_; |
my $cachename = 'cache.EXT.'.$target_user.'.'.$target_domain; |
my $cachename = 'cache.EXT.'.$target_user.'.'.$target_domain; |
if (exists($ENV{$cachename}) && ($ENV{$cachename}+1800) > time) { |
if (exists($ENV{$cachename}) && ($ENV{$cachename}+600) > time) { |
# We know already the user has no data |
# We know already the user has no data |
return 1; |
return 1; |
} else { |
} else { |
Line 4092 BEGIN {
|
Line 4102 BEGIN {
|
%domain_auth_arg_def = (); |
%domain_auth_arg_def = (); |
if ($fh) { |
if ($fh) { |
while (<$fh>) { |
while (<$fh>) { |
next if /^\#/; |
next if (/^(\#|\s*$)/); |
|
# next if /^\#/; |
chomp; |
chomp; |
my ($domain, $domain_description, $def_auth, $def_auth_arg) |
my ($domain, $domain_description, $def_auth, $def_auth_arg) |
= split(/:/,$_,4); |
= split(/:/,$_,4); |