--- loncom/auth/lonroles.pm 2013/01/04 04:03:03 1.281 +++ loncom/auth/lonroles.pm 2013/06/02 02:21:43 1.287 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.281 2013/01/04 04:03:03 raeburn Exp $ +# $Id: lonroles.pm,v 1.287 2013/06/02 02:21:43 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -139,6 +139,7 @@ use Apache::lonpageflip(); use Apache::lonnavdisplay(); use Apache::loncoursequeueadmin; use Apache::longroup; +use Apache::lonrss; use GDBM_File; use LONCAPA qw(:DEFAULT :match); use HTML::Entities; @@ -310,6 +311,7 @@ sub handler { my $trolecode = 'au./'.$domain.'/'; my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode; $r->internal_redirect($switchserver); + return OK; } last; } @@ -321,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; } @@ -342,6 +345,7 @@ sub handler { my $switchserver = '/adm/switchserver?' .'otherserver='.$home.'&role='.$trolecode; $r->internal_redirect($switchserver); + return OK; } } else { delete($env{$envkey}); @@ -518,11 +522,26 @@ ENDENTERKEY my $msg; my ($furl,$ferr)= &Apache::lonuserstate::readmap($cdom.'/'.$cnum); - unless (($ferr) || ($env{'form.switchrole'}) || - ($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) { - &Apache::lonnet::put('nohist_crslastlogin', - {$env{'user.name'}.':'.$env{'user.domain'}. - ':'.$csec.':'.$role => $now},$cdom,$cnum); + unless ($ferr) { + unless (($env{'form.switchrole'}) || + ($env{"environment.internal.$cdom.$cnum.$role.adhoc"})) { + &Apache::lonnet::put('nohist_crslastlogin', + {$env{'user.name'}.':'.$env{'user.domain'}. + ':'.$csec.':'.$role => $now},$cdom,$cnum); + } + my ($feeds,$syllabus_time); + &Apache::lonrss::advertisefeeds($cnum,$cdom,undef,\$feeds); + &Apache::lonnet::appenv({'request.course.feeds' => $feeds}); + unless ($env{'course.'.$cdom.'_'.$cnum.'.updatedsyllabus'}) { + unless (($env{'course.'.$cdom.'_'.$cnum.'.externalsyllabus'}) || + ($env{'course.'.$cdom.'_'.$cnum.'.uploadedsyllabus'})) { + my %syllabus=&Apache::lonnet::dump('syllabus',$cdom,$cnum); + $syllabus_time = $syllabus{'uploaded.lastmodified'}; + if ($syllabus_time) { + &Apache::lonnet::appenv({'request.course.syllabustime' => $syllabus_time}); + } + } + } } if (($env{'form.orgurl'}) && ($env{'form.orgurl'}!~/^\/adm\/flip/)) { @@ -704,11 +723,13 @@ ENDENTERKEY my $crumbtext = 'User Roles'; my $pagetitle = 'My Roles'; my $recent = &mt('Recent Roles'); + my $standby = &mt('Role selected. Please stand by.'); my $show_course=&Apache::loncommon::show_course(); if ($show_course) { $crumbtext = 'Courses'; $pagetitle = 'My Courses'; $recent = &mt('Recent Courses'); + $standby = &mt('Course selected. Please stand by.'); } my $brcrum =[{href=>"/adm/roles",text=>$crumbtext}]; @@ -718,7 +739,6 @@ ENDENTERKEY my $swinfo=&Apache::lonmenu::rawconfig(); my $start_page=&Apache::loncommon::start_page($pagetitle,undef,{bread_crumbs=>$brcrum}); my $funcs = &get_roles_functions($showcount); - my $standby=&mt('Role selected. Please stand by.'); $standby=~s/\n/\\n/g; my $noscript='
'.&mt('Use of LON-CAPA requires Javascript to be enabled in your web browser.').'
'.&mt('As this is not the case, most functionality in the system will be unavailable.').'

'; @@ -2421,9 +2441,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) { @@ -2437,47 +2459,67 @@ sub update_session_roles { } } if (keys(%newrole) > 0) { - $changemsg .= '
  • '.&mt('New roles'). - '
  • '; } if (keys(%customprivchg) > 0) { - $changemsg .= '
  • '. - &mt('Custom roles with privilege changes'). - '
  • '; + if ($privmsg) { + $changemsg .= '
  • '. + &mt('Custom roles with privilege changes'). + ''. + '
  • '; + } } if (keys(%rolechange) > 0) { - $changemsg .= '
  • '. - &mt('Existing roles with status changes').'
  • '. - ''; } if (keys(%deletedroles) > 0) { - $changemsg .= '
  • '. - &mt('Existing roles now expired').'
  • '. - ''; } } if ((keys(%changed_groups) > 0) || (keys(%groupchange) > 0)) { @@ -2537,6 +2579,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; } @@ -2545,8 +2593,10 @@ sub role_desc { my ($item,$update,$refresh,$now) = @_; my ($where,$trolecode,$role,$tstatus,$tend,$tstart,$twhere, $trole,$tremark); - &Apache::lonnet::role_status('user.role.'.$item,$update,$refresh, $now,\$role,\$where, \$trolecode, + &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); @@ -2588,9 +2638,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; }