--- loncom/auth/lonroles.pm 2011/09/09 16:34:41 1.261 +++ loncom/auth/lonroles.pm 2011/12/14 21:02:30 1.264 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.261 2011/09/09 16:34:41 bisitz Exp $ +# $Id: lonroles.pm,v 1.264 2011/12/14 21:02:30 raeburn 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('
'. @@ -1872,7 +1871,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 +2108,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 +2214,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; } }