--- loncom/auth/lonroles.pm 2008/07/30 15:34:34 1.203 +++ loncom/auth/lonroles.pm 2008/09/03 04:28:22 1.206 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.203 2008/07/30 15:34:34 raeburn Exp $ +# $Id: lonroles.pm,v 1.206 2008/09/03 04:28:22 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -146,12 +146,35 @@ sub handler { # Is this an ad-hoc CA-role? if (my ($domain,$user) = ($envkey =~ m-^form\.ca\./($match_domain)/($match_username)$-)) { - # Check if author blocked ca-access + if (($domain eq $env{'user.domain'}) && ($user eq $env{'user.name'})) { + delete($env{$envkey}); + $env{'form.au./'.$domain.'/'} = 1; + my ($server_status,$home) = &check_author_homeserver($user,$domain); + if ($server_status eq 'switchserver') { + my $trolecode = 'au./'.$domain.'/'; + my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; + $r->internal_redirect($switchserver); + } + last; + } + if (my ($castart,$caend) = ($env{'user.role.ca./'.$domain.'/'.$user} =~ /^(\d*)\.(\d*)$/)) { + if (((($castart) && ($castart < $now)) || !$castart) && + ((!$caend) || (($caend) && ($caend > $now)))) { + my ($server_status,$home) = &check_author_homeserver($user,$domain); + if ($server_status eq 'switchserver') { + my $trolecode = 'ca./'.$domain.'/'.$user; + my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; + $r->internal_redirect($switchserver); + } + last; + } + } + # Check if author blocked ca-access my %blocked=&Apache::lonnet::get('environment',['domcoord.author'],$domain,$user); if ($blocked{'domcoord.author'} eq 'blocked') { - delete($env{$envkey}); - $env{'user.error.msg'}=':::1:User '.$user.' in domain '.$domain.' blocked domain coordinator access'; - last; + delete($env{$envkey}); + $env{'user.error.msg'}=':::1:User '.$user.' in domain '.$domain.' blocked domain coordinator access'; + last; } if ($dcroles{$domain}) { my ($server_status,$home) = &check_author_homeserver($user,$domain); @@ -229,8 +252,11 @@ sub handler { $cdom,$cnum, $env{'user.domain'}, $env{'user.name'}, - 'Assigned from '.$ENV{'REMOTE_ADDR'}.' at '.localtime().' for '. - $trolecode); + &mt('Assigned from [_1] at [_2] for [_3]' + ,$ENV{'REMOTE_ADDR'} + ,&Apache::lonlocal::locallocaltime() + ,$trolecode) + ); unless ($assignresult eq 'ok') { $assignresult=~s/^error\:\s*//; $message=&mt($assignresult). @@ -354,7 +380,7 @@ ENDENTERKEY ) { my $startpage = &courseloadpage($courseid); unless ($startpage eq 'firstres') { - $msg = &mt('Entering [_1] ....', + $msg = &mt('Entering [_1] ...', $env{'course.'.$courseid.'.description'}); &redirect_user($r,&mt('New in course'), '/adm/whatsnew?refpage=start',$msg, @@ -554,7 +580,7 @@ ENDHEADER $countfuture ++; } elsif ($tstatus eq 'will') { $tbg='#FFAA77'; - $tremark.=&mt('Active at next login. '); + $tremark.=&mt('Active at next login.').' '; $roles_nextlogin{$trolecode} = $tstart.':'.$tend; $countwill ++; } elsif ($tstatus eq 'expired') { @@ -563,20 +589,19 @@ ENDHEADER $button=0; } elsif ($tstatus eq 'will_not') { $tbg='#AAFF77'; - $tremark.=&mt('Expired after logout. '); + $tremark.=&mt('Expired after logout.').' '; } elsif ($tstatus eq 'selected') { $tbg='#11CC55'; $tfont='#002200'; $inrole=1; $countactive++; - $tremark.=&mt('Currently selected. '); + $tremark.=&mt('Currently selected.').' '; } my $trole; if ($role =~ /^cr\//) { my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role); if ($tremark) { $tremark.='
'; } - $tremark.=&mt('Defined by ').$rauthor. - &mt(' at ').$rdomain.'.'; + $tremark.=&mt('Defined by [_1] at [_2].',$rauthor,$rdomain); } $trole=Apache::lonnet::plaintext($role); my $ttype; @@ -704,7 +729,7 @@ ENDHEADER my $tfont='#003300'; if ($env{'request.role'} eq 'cm') { $r->print(''); - $tremark=&mt('Currently selected. '); + $tremark=&mt('Currently selected.').' '; $tfont='#002200'; } else { $r->print(''); @@ -782,7 +807,7 @@ ENDHEADER my $tfont='#003300'; if ($env{'request.role'} eq 'cm') { $r->print(''); - $tremark=&mt('Currently selected. '); + $tremark=&mt('Currently selected.').' '; $tfont='#002200'; } else { $r->print(''); @@ -940,7 +965,7 @@ sub privileges_info { $ttype='System'; $twhere='/'; } - $output .= "\n

".$ttype.': '.$twhere.'

'."\n