--- loncom/auth/lonroles.pm 2014/05/05 11:44:18 1.269.2.19 +++ loncom/auth/lonroles.pm 2014/05/22 18:51:01 1.269.2.20 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.269.2.19 2014/05/05 11:44:18 raeburn Exp $ +# $Id: lonroles.pm,v 1.269.2.20 2014/05/22 18:51:01 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -128,7 +128,7 @@ package Apache::lonroles; use strict; use Apache::lonnet; use Apache::lonuserstate(); -use Apache::Constants qw(:common); +use Apache::Constants qw(:common REDIRECT); use Apache::File(); use Apache::lonmenu; use Apache::loncommon; @@ -208,6 +208,14 @@ sub handler { my $r = shift; + # Check for critical messages and redirect if present. + my ($redirect,$url) = &Apache::loncommon::critical_redirect(300); + if ($redirect) { + &Apache::loncommon::content_type($r,'text/html'); + $r->header_out(Location => $url); + return REDIRECT; + } + my $now=time; my $then=$env{'user.login.time'}; my $refresh=$env{'user.refresh.time'}; @@ -253,7 +261,7 @@ sub handler { my $envkey; my %dcroles = (); my $numdc = &check_fordc(\%dcroles,$update,$then); - my $loncaparev = $Apache::lonnet::perlvar{'lonVersion'}; + my $loncaparev = $r->dir_config('lonVersion'); # ================================================================== Roles Init if ($env{'form.selectrole'}) { @@ -650,7 +658,7 @@ ENDENTERKEY } } &redirect_user($r, &mt('Entering [_1]', - $env{'course.'.$env{'request.course.id'}.'.description'}), + $env{'course.'.$cdom.'_'.$cnum.'.description'}), $dest, $msg); return OK; } @@ -924,12 +932,7 @@ ENDHEADER # No active roles if ($countactive==0) { - if ($inrole) { - $r->print('

'.&mt('Currently no additional roles, courses or communities').'

'); - } else { - $r->print('

'.&mt('Currently no active roles, courses or communities').'

'); - } - &requestcourse_advice($r,$cattype); + &requestcourse_advice($r,$cattype,$inrole); $r->print(''); if ($countfuture) { $r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture)); @@ -1442,29 +1445,26 @@ sub findcourse_advice { } sub requestcourse_advice { - my ($r,$cattype) = @_; + my ($r,$cattype,$inrole) = @_; my $domdesc = &Apache::lonnet::domain($env{'user.domain'},'description'); my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); - my (%can_request,%request_doms); + my (%can_request,%request_doms,$output); &Apache::lonnet::check_can_request($env{'user.domain'},\%can_request,\%request_doms); if (keys(%request_doms) > 0) { my ($types,$typename) = &Apache::loncommon::course_types(); if ((ref($types) eq 'ARRAY') && (ref($typename) eq 'HASH')) { - $r->print('

'.&mt('Request creation of a course or community').'

'. - '

'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'

'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','','').'

'); + } + if ($output) { + $r->print('

'.&mt('Request creation of a course or community').'

'. + '

'. + &mt('You have rights to request the creation of courses and/or communities in the following domain(s):'). + '

'. + &mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.', + '',''). + '

'); + } } } elsif (!$env{'user.adv'}) { + if ($inrole) { + $r->print('

'.&mt('Currently no additional roles, courses or communities').'

'); + } else { + $r->print('

'.&mt('Currently no active roles, courses or communities').'

'); + } &findcourse_advice($r,$cattype); } return;