[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