[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /auth lonroles.pm

raeburn raeburn at source.lon-capa.org
Sun Feb 23 21:24:16 EST 2014


raeburn		Mon Feb 24 02:24:16 2014 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/auth	lonroles.pm 
  Log:
  - For 2.11
    - Backport 1.295, 1.296, 1.297.
  
  
Index: loncom/auth/lonroles.pm
diff -u loncom/auth/lonroles.pm:1.269.2.15 loncom/auth/lonroles.pm:1.269.2.16
--- loncom/auth/lonroles.pm:1.269.2.15	Mon Jan 13 03:56:42 2014
+++ loncom/auth/lonroles.pm	Mon Feb 24 02:24:16 2014
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # User Roles Screen
 #
-# $Id: lonroles.pm,v 1.269.2.15 2014/01/13 03:56:42 raeburn Exp $
+# $Id: lonroles.pm,v 1.269.2.16 2014/02/24 02:24:16 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -294,7 +294,7 @@
 				 "request.role.domain" => $env{'user.domain'}});
 # Check if user is a DC trying to enter a course or author space and needs privs to be created
         if ($numdc > 0) {
-            foreach my $envkey (keys %env) {
+            foreach my $envkey (keys(%env)) {
 # Is this an ad-hoc Coordinator role?
                 if (my ($ccrole,$domain,$coursenum) =
 		    ($envkey =~ m-^form\.(cc|co)\./($match_domain)/($match_courseid)$-)) {
@@ -364,7 +364,7 @@
             }
         }
 
-        foreach $envkey (keys %env) {
+        foreach $envkey (keys(%env)) {
             next if ($envkey!~/^user\.role\./);
             my ($where,$trolecode,$role,$tstatus,$tend,$tstart);
             &Apache::lonnet::role_status($envkey,$update,$refresh,$now,\$role,\$where,
@@ -597,13 +597,8 @@
 			    } else {
 				# Check to see if the user is a CC entering a course 
 				# for the first time
-				my (undef, undef, $role, $courseid) = split(/\./, $envkey);
-				if (substr($courseid, 0, 1) eq '/') {
-				    $courseid = substr($courseid, 1);
-				}
-				$courseid =~ s/\//_/;
 				if ((($role eq 'cc') || ($role eq 'co')) 
-                                    && ($env{'course.' . $courseid .'.course.helper.not.run'})) { 
+                                    && ($env{'course.' .$cdom.'_'.$cnum.'.course.helper.not.run'})) { 
 				    $furl = "/adm/helper/course.initialization.helper";
 				    # Send the user to the course they selected
 				} elsif ($env{'request.course.id'}) {
@@ -655,7 +650,7 @@
                                             }
                                         }
                                         &redirect_user($r, &mt('Entering [_1]',
-                                                       $env{'course.'.$courseid.'.description'}),
+                                                       $env{'course.'.$env{'request.course.id'}.'.description'}),
                                                        $dest, $msg);
                                         return OK;
                                     }
@@ -665,10 +660,10 @@
 								    $env{'request.course.id'}.'/'
 								    .$env{'request.course.sec'})
 					) {
-					my $startpage = &courseloadpage($courseid);
+					my $startpage = &courseloadpage($env{'request.course.id'});
 					unless ($startpage eq 'firstres') {         
 					    $msg = &mt('Entering [_1] ...',
-						       $env{'course.'.$courseid.'.description'});
+						       $env{'course.'.$env{'request.course.id'}.'.description'});
 					    &redirect_user($r, &mt('New in course'),
                                        '/adm/whatsnew?refpage=start', $msg);
 					    return OK;
@@ -681,9 +676,9 @@
 				    $furl=&Apache::lonpageflip::first_accessible_resource();
 				}
                                 $msg = &mt('Entering [_1] ...',
-					   $env{'course.'.$courseid.'.description'});
+					   $env{'course.'.$cdom.'_'.$cnum.'.description'});
 				&redirect_user($r, &mt('Entering [_1]',
-                               $env{'course.'.$courseid.'.description'}),
+                               $env{'course.'.$cdom.'_'.$cnum.'.description'}),
                                $furl, $msg);
 			    }
 			    return OK;
@@ -895,11 +890,13 @@
             my $esc_dom = &HTML::Entities::encode($env{'user.domain'},'"<>&'); 
             $r->print(
                 '<p>'
-               .&mt('[_1]Visit the [_2]Course/Community Catalog[_3]'
-                   .' to view all [_4] LON-CAPA courses and communities.'
+               .&mt('[_1]Visit the [_2]Course/Community Catalog[_3][_4]'
+                   .' to view all [_5] LON-CAPA courses and communities.'
                    ,'<b>'
                    ,'<a href="/adm/coursecatalog?showdom='.$esc_dom.'">'
-                   ,'</a></b>',$domdesc)
+                   ,'</a>'
+                   ,'</b>'
+                   ,'"'. $domdesc.'"')
                .'<br />'
                .&mt('If a course or community is [_1]not[_2] in your list of current courses and communities below,'
                    .' you may be able to enroll if self-enrollment is permitted.'
@@ -1608,24 +1605,6 @@
     return ($roletext,$roletext_end);
 }
 
-sub check_needs_switchserver {
-    my ($possiblerole) = @_;
-    my $needs_switchserver;
-    my ($role,$where) = split(/\./,$possiblerole,2);
-    my (undef,$tdom,$twho) = split(/\//,$where);
-    my ($server_status,$home);
-    if (($role eq 'ca') || ($role eq 'aa')) {
-        ($server_status,$home) = &check_author_homeserver($twho,$tdom);
-    } else {
-        ($server_status,$home) = &check_author_homeserver($env{'user.name'},
-                                                          $env{'user.domain'});
-    }
-    if ($server_status eq 'switchserver') {
-        $needs_switchserver = 1;
-    }
-    return $needs_switchserver;
-}
-
 sub check_author_homeserver {
     my ($uname,$udom)=@_;
     if (($uname eq '') || ($udom eq '')) {
@@ -1691,7 +1670,7 @@
             }
         }
         if ($setprivs) {
-            if ($env{'form.switchrole'} =~ m-^(in|ta|ep|ad|st|cr)([\w/]*)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) {
+            if ($env{'form.switchrole'} =~ m-^(in|ta|ep|ad|st|cr)(.*?)\./\Q$cdom\E/\Q$cnum\E/?(\w*)$-) {
                 my $role = $1;
                 my $custom_role = $2;
                 my $usec = $3;
@@ -2237,7 +2216,8 @@
         my $status_in_env =
             &curr_role_status($currstart,$currend,$refresh,$update);
         my ($rolekey) = ($envkey =~ /^user\.role\.(.+)$/);
-        my ($role,$rest)=split(/\./,$rolekey,2);
+        my ($role,$rest)=split(m{\./},$rolekey,2);
+        $rest = '/'.$rest; 
         if (&Apache::lonnet::delenv($envkey,undef,[$role])) {
             if ($status_in_env eq 'active') {
                 if ($role eq 'gr') {
@@ -2766,7 +2746,7 @@
                                            $env{'user.name'},'^status:');
     foreach my $key (keys(%statusinfo)) {
         next unless (($statusinfo{$key} eq 'approval') || ($statusinfo{$key} eq 'pending'));
-        (undef,my($cdom,$cnum)) = split(':',$key);
+        (undef,my($cdom,$cnum)) = split(/:/,$key);
         my $requestkey = $cdom.'_'.$cnum;
         if ($requestkey =~ /^($match_domain)_($match_courseid)$/) {
             my %history = &Apache::lonnet::restore($requestkey,'courserequests',




More information about the LON-CAPA-cvs mailing list