--- loncom/auth/lonroles.pm 2011/02/24 23:29:10 1.260 +++ loncom/auth/lonroles.pm 2012/06/01 16:00:29 1.267 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.260 2011/02/24 23:29:10 raeburn Exp $ +# $Id: lonroles.pm,v 1.267 2012/06/01 16:00:29 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -221,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; @@ -601,10 +601,9 @@ 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; + $redirect_url .= $where; } $redirect_url .= '/'; &redirect_user($r,&mt('Entering Construction Space'), @@ -782,7 +781,7 @@ ENDHEADER if ($env{'form.showall'}) { $showall .= ' checked="checked" '; } - $showall .= ' />'.&mt('Show all roles').''. + $showall .= ' />'.&mt('Show all roles').' '. ''; if ($do_update) { $r->print('
'. @@ -955,7 +954,12 @@ ENDHEADER $r->print('

'.&mt('Current Privileges').'

'); $r->print(&privileges_info()); } - $r->print(&Apache::lonnet::getannounce()); + my $announcements = &Apache::lonnet::getannounce(); + $r->print( + '
'. + '

'.&mt('Announcements').'

'. + $announcements + ) unless (!$announcements); if ($advanced) { my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); $r->print('

' @@ -1614,19 +1618,17 @@ sub check_forcc { } else { $ccrole = 'cc'; } - if ($cdom ne '' && $cnum ne '') { - if (&Apache::lonnet::is_course($cdom,$cnum)) { - my $envkey = 'user.role.'.$ccrole.'./'.$cdom.'/'.$cnum; - if (defined($env{$envkey})) { - $is_cc = 1; - my ($tstart,$tend)=split(/\./,$env{$envkey}); - my $limit = $update; - if ($env{'request.role'} eq $ccrole.'./'.$cdom.'/'.$cnum) { - $limit = $then; - } - if ($tstart && $tstart>$refresh) { $is_cc = 0; } - if ($tend && $tend <$limit) { $is_cc = 0; } + if (&Apache::lonnet::is_course($cdom,$cnum)) { + my $envkey = 'user.role.'.$ccrole.'./'.$cdom.'/'.$cnum; + if (defined($env{$envkey})) { + $is_cc = 1; + my ($tstart,$tend)=split(/\./,$env{$envkey}); + my $limit = $update; + if ($env{'request.role'} eq $ccrole.'./'.$cdom.'/'.$cnum) { + $limit = $then; } + if ($tstart && $tstart>$refresh) { $is_cc = 0; } + if ($tend && $tend <$limit) { $is_cc = 0; } } } return $is_cc; @@ -1801,7 +1803,7 @@ sub display_cc_role { my %newhash=&Apache::lonnet::coursedescription($tcourseid); if (%newhash) { $twhere=$newhash{'description'}. - ' '. + ' '. &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom). ''; $ttype = $newhash{'type'}; @@ -1872,7 +1874,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); @@ -2109,7 +2111,9 @@ sub update_session_roles { foreach my $priv (@privs) { my ($blank,@prv) = split(/:/,$priv); @prv = map { $_ .= (/\&\w+$/ ? '':'&F') } @prv; - $priv = ':'.join(':',sort(@prv)); + if (@prv) { + $priv = ':'.join(':',sort(@prv)); + } $crprivs{$rest}{$scopes[$i]} = $priv; $i++; } @@ -2213,21 +2217,30 @@ 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))) { - $msg .= ''; if (!@changed_roles && !(keys(%changed_groups))) { + if (($msg ne '') || ($groupsmsg ne '')) { + $msg .= ''; + } else { + $msg = ' '.$rolesmsg.'

'; + } return $msg; } }