--- loncom/auth/lonroles.pm 2012/02/09 01:11:52 1.256.2.6.2.3 +++ loncom/auth/lonroles.pm 2011/09/09 16:34:41 1.261 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.256.2.6.2.3 2012/02/09 01:11:52 raeburn Exp $ +# $Id: lonroles.pm,v 1.261 2011/09/09 16:34:41 bisitz 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; } @@ -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]' @@ -878,27 +853,6 @@ ENDHEADER } $r->print(&Apache::loncommon::end_page()); return OK; - } elsif ($countactive==1 && $countfuture==0) { # Only one choice - my $needs_switchserver; - if ($env{'user.author'}) { - $needs_switchserver = &check_needs_switchserver($possiblerole); - } - if ((!$needs_switchserver) && ($env{'request.role'} eq 'cm')) { - $r->print('

'.&mt('Please stand by.').'

'. - ''. - ''); - $r->print("\n"); - $r->rflush(); - $r->print(''); - $r->print(&Apache::loncommon::end_page()); - return OK; - } - if ($needs_switchserver) { - $r->print("

".&mt('Server Switch Required')."

\n". - &mt('Construction Space access is only available from '. - 'the home server of the corresponding Author.').'
'. - &mt("Click the 'Switch Server' link to go there.").'
'); - } } # ----------------------------------------------------------------------- Table @@ -1918,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); @@ -2155,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++; } @@ -2261,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; } } @@ -2503,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') {