[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /auth lonroles.pm
raeburn
raeburn at source.lon-capa.org
Thu May 22 14:51:02 EDT 2014
raeburn Thu May 22 18:51:02 2014 EDT
Modified files: (Branch: version_2_11_X)
/loncom/auth lonroles.pm
Log:
- For 2.11
- Backport 1.304, 1.305, 1.306, 1.307
Index: loncom/auth/lonroles.pm
diff -u loncom/auth/lonroles.pm:1.269.2.19 loncom/auth/lonroles.pm:1.269.2.20
--- loncom/auth/lonroles.pm:1.269.2.19 Mon May 5 11:44:18 2014
+++ loncom/auth/lonroles.pm Thu May 22 18:51:01 2014
@@ -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 @@
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 @@
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 @@
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 @@
}
}
&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 @@
# No active roles
if ($countactive==0) {
- if ($inrole) {
- $r->print('<h2>'.&mt('Currently no additional roles, courses or communities').'</h2>');
- } else {
- $r->print('<h2>'.&mt('Currently no active roles, courses or communities').'</h2>');
- }
- &requestcourse_advice($r,$cattype);
+ &requestcourse_advice($r,$cattype,$inrole);
$r->print('</form>');
if ($countfuture) {
$r->print(&mt('The following [quant,_1,role,roles] will become active in the future:',$countfuture));
@@ -1442,29 +1445,26 @@
}
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('<h3>'.&mt('Request creation of a course or community').'</h3>'.
- '<p>'.&mt('You have rights to request the creation of courses and/or communities in the following domain(s):').'<ul>');
my (@reqdoms, at reqtypes);
foreach my $type (sort(keys(%request_doms))) {
push(@reqtypes,$type);
if (ref($request_doms{$type}) eq 'ARRAY') {
my $domstr = join(', ',map { &Apache::lonnet::domain($_) } sort(@{$request_doms{$type}}));
- $r->print(
+ $output .=
'<li>'
.&mt('[_1]'.$typename->{$type}.'[_2] in domain: [_3]',
'<i>',
'</i>',
'<b>'.$domstr.'</b>')
- .'</li>'
- );
+ .'</li>';
foreach my $dom (@{$request_doms{$type}}) {
unless (grep(/^\Q$dom\E/, at reqdoms)) {
push(@reqdoms,$dom);
@@ -1487,10 +1487,25 @@
}
if (@reqdoms == 1 || @showtypes > 0) {
$requrl .= '&state=crstype&action=new';
- }
- $r->print('</ul>'.&mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.','<a href="'.$requrl.'">','</a>').'</p>');
+ }
+ if ($output) {
+ $r->print('<h3>'.&mt('Request creation of a course or community').'</h3>'.
+ '<p>'.
+ &mt('You have rights to request the creation of courses and/or communities in the following domain(s):').
+ '<ul>'.
+ $output.
+ '</ul>'.
+ &mt('Use the [_1]request form[_2] to submit a request for creation of a new course or community.',
+ '<a href="'.$requrl.'">','</a>').
+ '</p>');
+ }
}
} elsif (!$env{'user.adv'}) {
+ if ($inrole) {
+ $r->print('<h3>'.&mt('Currently no additional roles, courses or communities').'</h3>');
+ } else {
+ $r->print('<h3>'.&mt('Currently no active roles, courses or communities').'</h3>');
+ }
&findcourse_advice($r,$cattype);
}
return;
More information about the LON-CAPA-cvs
mailing list