--- loncom/auth/lonroles.pm 2012/02/08 16:27:35 1.256.2.6.2.2 +++ loncom/auth/lonroles.pm 2011/10/21 16:28:49 1.262 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.256.2.6.2.2 2012/02/08 16:27:35 raeburn Exp $ +# $Id: lonroles.pm,v 1.262 2011/10/21 16:28:49 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -141,22 +141,14 @@ use Apache::loncoursequeueadmin; use GDBM_File; use LONCAPA qw(:DEFAULT :match); use HTML::Entities; - + sub redirect_user { - my ($r,$title,$url,$msg,$launch_nav) = @_; + my ($r,$title,$url,$msg) = @_; $msg = $title if (! defined($msg)); &Apache::loncommon::content_type($r,'text/html'); &Apache::loncommon::no_cache($r); $r->send_http_header; - my $swinfo=&Apache::lonmenu::rawconfig(); - my $navwindow; - if ($launch_nav eq 'on') { - $navwindow.=&Apache::lonnavdisplay::launch_win('now',undef,undef, - ($url =~ m-^/adm/whatsnew-)); - } else { - $navwindow.=&Apache::lonnavmaps::close(); - } # Breadcrumbs my $brcrum = [{'href' => $url, @@ -171,12 +163,6 @@ sub redirect_user { $url=~s/ /\%20/g; $r->print(< -// - -$navwindow

$msg

$end_page ENDREDIR @@ -235,7 +221,7 @@ sub handler { } else { $checkingtxt = &mt('Checking for new roles ...'); } - $updateresult = ''.$checkingtxt.''; + $updateresult = '
'.$checkingtxt.'
'; $updateresult .= &update_session_roles(); &Apache::lonnet::appenv({'user.update.time' => $now}); $update = $now; @@ -514,11 +500,6 @@ ENDENTERKEY my $msg; my ($furl,$ferr)= &Apache::lonuserstate::readmap($cdom.'/'.$cnum); - unless (($ferr) || ($env{'form.switchrole'})) { - &Apache::lonnet::put('nohist_crslastlogin', - {$env{'user.name'}.':'.$env{'user.domain'}. - ':'.$csec.':'.$role => $now},$cdom,$cnum); - } if (($env{'form.orgurl'}) && ($env{'form.orgurl'}!~/^\/adm\/flip/)) { my $dest=$env{'form.orgurl'}; @@ -582,8 +563,7 @@ ENDENTERKEY } &redirect_user($r, &mt('Entering [_1]', $env{'course.'.$courseid.'.description'}), - $dest, $msg, - $env{'environment.remotenavmap'}); + $dest, $msg); return OK; } if (&Apache::lonnet::allowed('whn', @@ -596,26 +576,22 @@ ENDENTERKEY unless ($startpage eq 'firstres') { $msg = &mt('Entering [_1] ...', $env{'course.'.$courseid.'.description'}); - &redirect_user($r,&mt('New in course'), - '/adm/whatsnew?refpage=start',$msg, - $env{'environment.remotenavmap'}); + &redirect_user($r, &mt('New in course'), + '/adm/whatsnew?refpage=start', $msg); return OK; } } } # Are we allowed to look at the first resource? - if (($furl !~ m|^/adm/|) || - (($env{'environment.remotenavmap'} eq 'on') && - ($furl =~ m{^/adm/navmaps}))) { + if ($furl !~ m|^/adm/|) { # Guess not ... $furl=&Apache::lonpageflip::first_accessible_resource(); } $msg = &mt('Entering [_1] ...', $env{'course.'.$courseid.'.description'}); - &redirect_user($r,&mt('Entering [_1]', - $env{'course.'.$courseid.'.description'}), - $furl,$msg, - $env{'environment.remotenavmap'}); + &redirect_user($r, &mt('Entering [_1]', + $env{'course.'.$courseid.'.description'}), + $furl, $msg); } return OK; } @@ -625,7 +601,7 @@ ENDENTERKEY if ($role =~ /^(au|ca|aa)$/) { my $redirect_url = '/priv/'; if ($role eq 'au') { - $redirect_url.=$env{'user.name'}; + $redirect_url.=$env{'user.domain'}.'/'.$env{'user.name'}; } else { $where =~ /\/(.*)$/; $redirect_url .= $1; @@ -698,7 +674,7 @@ function enterrole (thisform,rolecode,bu thisform.submit(); } else { alert('$standby'); - } + } } function setToUpdate(thisform) { @@ -767,16 +743,15 @@ ENDHEADER } } } -# -------------------------------------------------------- Choice or no choice? if ($nochoose) { - $r->print("

".&mt('Sorry ...')."

\n". - &mt('This action is currently not authorized.').''. - &Apache::loncommon::end_page()); - return OK; + $r->print("

".&mt('Sorry ...')."

\n". + &mt('This action is currently not authorized.').''. + &Apache::loncommon::end_page()); + return OK; } else { - $r->print($updateresult); + $r->print($updateresult); if (($ENV{'REDIRECT_QUERY_STRING'}) && ($fn)) { - $fn.='?'.$ENV{'REDIRECT_QUERY_STRING'}; + $fn.='?'.$ENV{'REDIRECT_QUERY_STRING'}; } $r->print('
'); $r->print(''); @@ -786,7 +761,7 @@ ENDHEADER $r->rflush(); my (%roletext,%sortrole,%roleclass,%futureroles,%timezones); - my ($countactive,$countfuture,$inrole,$possiblerole) = + my ($countactive,$countfuture,$inrole,$possiblerole) = &gather_roles($update,$refresh,$now,$reinit,$nochoose,\%roletext,\%sortrole,\%roleclass, \%futureroles,\%timezones,$loncaparev); $refresh = $now; @@ -804,10 +779,10 @@ ENDHEADER } if ($env{'user.adv'}) { my $showall = ''. ''; if ($do_update) { $r->print('
'. @@ -824,7 +799,7 @@ ENDHEADER if ($countactive > 0) { $r->print(&Apache::loncoursequeueadmin::queued_selfenrollment()); my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description'); - my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); + my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); $r->print( '

' .&mt('[_1]Visit the [_2]Course/Community Catalog[_3]' @@ -1897,7 +1872,7 @@ sub update_session_roles { ['active','future','previous'], undef,undef,1); my ($msg,@newsec,$oldsec,$currrole_expired,@changed_roles, - %changed_groups,%dbroles,%deletedroles,%allroles,%allgroups, + %changed_groups,%dbroles, %deletedroles,%allroles,%allgroups, %userroles,%checkedgroup,%crprivs,$hasgroups,%rolechange, %groupchange,%newrole,%newgroup,%customprivchg,%groups_roles, @rolecodes); @@ -2134,9 +2109,7 @@ sub update_session_roles { foreach my $priv (@privs) { my ($blank,@prv) = split(/:/,$priv); @prv = map { $_ .= (/\&\w+$/ ? '':'&F') } @prv; - if (@prv) { - $priv = ':'.join(':',sort(@prv)); - } + $priv = ':'.join(':',sort(@prv)); $crprivs{$rest}{$scopes[$i]} = $priv; $i++; } @@ -2240,30 +2213,21 @@ sub update_session_roles { $msg .= '
'.&mt('However you can continue to use this role until you logout, click the "Re-Select" button, or your session has been idle for more than 24 hours.').'

'; } if (!@changed_roles || !(keys(%changed_groups))) { - my ($rolesmsg,$groupsmsg); + $msg .= ''; if (!@changed_roles && !(keys(%changed_groups))) { - if (($msg ne '') || ($groupsmsg ne '')) { - $msg .= ''; - } else { - $msg = ' '.$rolesmsg.'
'; - } return $msg; } } @@ -2482,7 +2446,7 @@ sub gather_roleprivs { my $spec=$role.'.'.$area; $userroles->{'user.role.'.$spec} = $tstart.'.'.$tend; my ($tdummy,$tdomain,$trest)=split(/\//,$area); - if ($status eq 'active') { + if ($status eq 'active') { if ($role =~ /^cr\//) { &Apache::lonnet::custom_roleprivs($allroles,$role,$tdomain,$trest,$spec,$area); } elsif ($role eq 'gr') {