--- loncom/auth/lonroles.pm 2013/05/09 05:24:42 1.284
+++ loncom/auth/lonroles.pm 2013/05/21 23:13:40 1.286
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# User Roles Screen
#
-# $Id: lonroles.pm,v 1.284 2013/05/09 05:24:42 raeburn Exp $
+# $Id: lonroles.pm,v 1.286 2013/05/21 23:13:40 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -311,6 +311,7 @@ sub handler {
my $trolecode = 'au./'.$domain.'/';
my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
$r->internal_redirect($switchserver);
+ return OK;
}
last;
}
@@ -322,6 +323,7 @@ sub handler {
my $trolecode = 'ca./'.$domain.'/'.$user;
my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
$r->internal_redirect($switchserver);
+ return OK;
}
last;
}
@@ -343,6 +345,7 @@ sub handler {
my $switchserver = '/adm/switchserver?'
.'otherserver='.$home.'&role='.$trolecode;
$r->internal_redirect($switchserver);
+ return OK;
}
} else {
delete($env{$envkey});
@@ -2437,9 +2440,11 @@ sub update_session_roles {
&unescape($groupinfo{'description'});
}
$groupdesc = $groupdescs{$cdom.'_'.$cnum}{$group};
- $groupmsg .= '
'.
- &mt('[_1] with status: [_2].',
- ''.$groupdesc.'',$newgroup{$item}).'';
+ if ($groupdesc) {
+ $groupmsg .= ''.
+ &mt('[_1] with status: [_2].',
+ ''.$groupdesc.'',$newgroup{$item}).'';
+ }
}
}
if ($groupmsg) {
@@ -2453,47 +2458,67 @@ sub update_session_roles {
}
}
if (keys(%newrole) > 0) {
- $changemsg .= ''.&mt('New roles').
- '';
+ my $newmsg;
foreach my $item (sort(keys(%newrole))) {
my $desc = &role_desc($item,$update,$refresh,$now);
- $changemsg .= '- '.
- &mt('[_1] with status: [_2].',
- $desc,$newrole{$item}).'
';
+ if ($desc) {
+ $newmsg .= '- '.
+ &mt('[_1] with status: [_2].',
+ $desc,$newrole{$item}).'
';
+ }
+ }
+ if ($newmsg) {
+ $changemsg .= '- '.&mt('New roles').
+ ''.
+ '
';
}
- $changemsg .= '
';
}
if (keys(%customprivchg) > 0) {
- $changemsg .= ''.
- &mt('Custom roles with privilege changes').
- '';
+ my $privmsg;
foreach my $item (sort(keys(%customprivchg))) {
my $desc = &role_desc($item,$update,$refresh,$now);
- $changemsg .= '- '.$desc.'
';
+ if ($desc) {
+ $privmsg .= '- '.$desc.'
';
+ }
}
- $changemsg .= '
';
+ if ($privmsg) {
+ $changemsg .= ''.
+ &mt('Custom roles with privilege changes').
+ ''.
+ '';
+ }
}
if (keys(%rolechange) > 0) {
- $changemsg .= ''.
- &mt('Existing roles with status changes').''.
- '';
+ my $rolemsg;
foreach my $item (sort(keys(%rolechange))) {
my $desc = &role_desc($item,$update,$refresh,$now);
+ if ($desc) {
+ $rolemsg .= '- '.
+ &mt('[_1] status now: [_2].',$desc,
+ $rolechange{$item}).'
';
+ }
+ }
+ if ($rolemsg) {
$changemsg .= '- '.
- &mt('[_1] status now: [_2].',$desc,
- $rolechange{$item}).'
';
+ &mt('Existing roles with status changes').''.
+ ''.
+ '';
}
- $changemsg .= '
';
}
if (keys(%deletedroles) > 0) {
- $changemsg .= ''.
- &mt('Existing roles now expired').''.
- '';
+ my $delmsg;
foreach my $item (sort(keys(%deletedroles))) {
my $desc = &role_desc($item,$update,$refresh,$now);
- $changemsg .= '- '.$desc.'
';
+ if ($desc) {
+ $delmsg .= '- '.$desc.'
';
+ }
+ }
+ if ($delmsg) {
+ $changemsg .= '- '.
+ &mt('Existing roles now expired').'
'.
+ ''.
+ '';
}
- $changemsg .= '
';
}
}
if ((keys(%changed_groups) > 0) || (keys(%groupchange) > 0)) {
@@ -2553,6 +2578,12 @@ sub update_session_roles {
}
if ($changemsg) {
$msg .= '';
+ } else {
+ if (&Apache::loncommon::show_course()) {
+ $msg = &mt('No new courses or communities');
+ } else {
+ $msg = &mt('No role changes');
+ }
}
return $msg;
}
@@ -2564,6 +2595,7 @@ sub role_desc {
&Apache::lonnet::role_status('user.role.'.$item,$update,$refresh,
$now,\$role,\$where,\$trolecode,
\$tstatus,\$tstart,\$tend);
+ return unless ($role);
if ($role =~ /^cr\//) {
my ($rdummy,$rdomain,$rauthor,$rrole)=split(/\//,$role);
$tremark = &mt('Customrole defined by [_1].',$rauthor.':'.$rdomain);
@@ -2605,9 +2637,15 @@ sub role_desc {
} elsif ($tdom) {
$twhere = &mt('Domain').': '.$tdom;
}
- my $output = "$trole -- $twhere";
- if ($tremark) {
- $output .= '
'.$tremark;
+ my $output;
+ if ($trole) {
+ $output = $trole;
+ if ($twhere) {
+ $output .= " -- $twhere";
+ }
+ if ($tremark) {
+ $output .= '
'.$tremark;
+ }
}
return $output;
}