--- loncom/auth/lonroles.pm 2007/10/22 22:16:30 1.180 +++ loncom/auth/lonroles.pm 2008/01/30 01:18:58 1.183 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.180 2007/10/22 22:16:30 raeburn Exp $ +# $Id: lonroles.pm,v 1.183 2008/01/30 01:18:58 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -122,13 +122,37 @@ sub handler { "request.role.adv" => $env{'user.adv'}, "request.role.domain" => $env{'user.domain'}); -# Check if user is a DC trying to enter a course and needs privs to be created +# Check if user is a DC trying to enter a course or author space and needs privs to be created if ($numdc > 0) { foreach my $envkey (keys %env) { +# Is this an ad-hoc CC-role? if (my ($domain,$coursenum) = ($envkey =~ m-^form\.cc\./($match_domain)/($match_courseid)$-)) { if ($dcroles{$domain}) { - &check_privs($domain,$coursenum,$then,$now); + &check_privs($domain,$coursenum,$then,$now,'cc'); + } + last; + } +# Is this a recent ad-hoc CA-role? + if (my ($domain,$user) = + ($envkey =~ m-^form\.ca\./($match_domain)/($match_username)$-)) { + if (($dcroles{$domain}) && (&is_author_homeserver($user,$domain))) { + &check_privs($domain,$user,$then,$now,'ca'); + } else { + delete($env{$envkey}); + } + last; + } +# Is this a new ad-hoc CA-role? + if (my ($domain) = + ($envkey =~ m-^form\.adhocca\./($match_domain)$-)) { + if ($dcroles{$domain}) { + my $user=$env{'form.adhoccauname.'.$domain}; + if (!$user) { $user=$env{'form.adhoccaunamerecent.'.$domain} }; + if (($user) && ($user=~/$match_username/) && (&is_author_homeserver($user,$domain))) { + &check_privs($domain,$user,$then,$now,'ca'); + $env{'form.ca./'.$domain.'/'.$user}=1; + } } last; } @@ -642,7 +666,7 @@ ENDHEADER } # More than one possible role # ----------------------------------------------------------------------- Table - unless (($advanced) || ($nochoose)) { + unless ((!&Apache::lonmenu::show_course()) || ($nochoose)) { $r->print("
';
+ my $carole = &Apache::lonnet::plaintext('ca');
+ my $inputlink='';
+ my $gobutton='';
+ $output.= ''.
+ &mt('[_1]: [_2] in domain [_3] [_4]',$carole,$inputlink,$dcdom,$gobutton).
' | ||||