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

raeburn raeburn@source.lon-capa.org
Wed, 02 Jun 2010 15:56:39 -0000


This is a MIME encoded message

--raeburn1275494199
Content-Type: text/plain

raeburn		Wed Jun  2 15:56:39 2010 EDT

  Modified files:              (Branch: version_2_9_X)
    /loncom/auth	lonroles.pm 
  Log:
  - Backport 1.247, 1.248, 1.29, 1.250.
  
  
--raeburn1275494199
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20100602155639.txt"

Index: loncom/auth/lonroles.pm
diff -u loncom/auth/lonroles.pm:1.231.4.12 loncom/auth/lonroles.pm:1.231.4.13
--- loncom/auth/lonroles.pm:1.231.4.12	Sat Jan 23 21:13:04 2010
+++ loncom/auth/lonroles.pm	Wed Jun  2 15:56:39 2010
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # User Roles Screen
 #
-# $Id: lonroles.pm,v 1.231.4.12 2010/01/23 21:13:04 raeburn Exp $
+# $Id: lonroles.pm,v 1.231.4.13 2010/06/02 15:56:39 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -261,7 +261,7 @@
                         my ($server_status,$home) = &check_author_homeserver($user,$domain);
                         if ($server_status eq 'switchserver') {
                             my $trolecode = 'au./'.$domain.'/';
-                            my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
+                            my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
                             $r->internal_redirect($switchserver);
                         }
                         last;
@@ -272,7 +272,7 @@
                             my ($server_status,$home) = &check_author_homeserver($user,$domain);
                             if ($server_status eq 'switchserver') {
                                 my $trolecode = 'ca./'.$domain.'/'.$user;
-                                my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
+                                my $switchserver = '/adm/switchserver?otherserver='.$home.'&role='.$trolecode;
                                 $r->internal_redirect($switchserver);
                             }
                             last;
@@ -293,7 +293,7 @@
                             if ($server_status eq 'switchserver') {
                                 my $trolecode = 'ca./'.$domain.'/'.$user; 
                                 my $switchserver = '/adm/switchserver?'
-                                                  .'otherserver='.$home.'&role='.$trolecode;
+                                                  .'otherserver='.$home.'&role='.$trolecode;
                                 $r->internal_redirect($switchserver);
                             }
                         } else {
@@ -659,7 +659,7 @@
             if ($reinit) {
                 $r->print(
  '<h3><span class="LC_error">'.
- &mt('As your session file for the course or community has expired, you will need to re-select the course.').'</span></h3>');
+ &mt('As your session file for the course or community has expired, you will need to re-select it.').'</span></h3>');
             } else {
 	        $r->print(
  '<h3><span class="LC_error">'.
@@ -758,6 +758,12 @@
 	return OK;
     }
 # ----------------------------------------------------------------------- Table
+    if ($numdc > 0) {
+        $r->print(&coursepick_jscript());
+        $r->print(&Apache::loncommon::coursebrowser_javascript().
+                  &Apache::loncommon::authorbrowser_javascript());
+    }
+
     unless ((!&Apache::loncommon::show_course()) || ($nochoose) || ($countactive==1)) {
 	$r->print("<h2>".&mt('Select a Course to Enter')."</h2>\n");
     }
@@ -774,23 +780,31 @@
         my %recent_roles =
                &Apache::lonhtmlcommon::get_recent('roles',$env{'environment.recentrolesn'});
 	my $output='';
-	foreach (sort(keys(%recent_roles))) {
-	    if (ref($roletext{'user.role.'.$_}) eq 'ARRAY') {
+	foreach my $role (sort(keys(%recent_roles))) {
+	    if (ref($roletext{'user.role.'.$role}) eq 'ARRAY') {
 		$output.= &Apache::loncommon::start_data_table_row().
-                          $roletext{'user.role.'.$_}->[0].
-                          &Apache::loncommon::end_data_table_row().
-                          &Apache::loncommon::continue_data_table_row().
-                          $roletext{'user.role.'.$_}->[1].
+                          $roletext{'user.role.'.$role}->[0].
                           &Apache::loncommon::end_data_table_row();
-                if ($_ =~ m-dc\./($match_domain)/- 
+                if ($roletext{'user.role.'.$role}->[1] ne '') {
+                    $output .= &Apache::loncommon::continue_data_table_row().
+                               $roletext{'user.role.'.$role}->[1].
+                               &Apache::loncommon::end_data_table_row();
+                }
+                if ($role =~ m{dc\./($match_domain)/} 
 		    && $dcroles{$1}) {
 		    $output .= &adhoc_roles_row($1,'recent');
                 }
 	    } elsif ($numdc > 0) {
-                unless ($_ =~/^error\:/) {
-                    $output.=&display_cc_role('user.role.'.$_);
+                unless ($role =~/^error\:/) {
+                    my ($roletext,$role_text_end) = &display_cc_role('user.role.'.$role);
+                    $output.= &Apache::loncommon::start_data_table_row().
+                              $roletext.
+                              &Apache::loncommon::end_data_table_row().
+                              &Apache::loncommon::continue_data_table_row().
+                              $role_text_end.
+                              &Apache::loncommon::end_data_table_row();
                 }
-            } 
+            }
 	}
 	if ($output) {
 	    $r->print(&Apache::loncommon::start_data_table_empty_row()
@@ -803,12 +817,6 @@
             $doheaders ++;
 	}
     }
-
-    if ($numdc > 0) {
-        $r->print(&coursepick_jscript());
-        $r->print(&Apache::loncommon::coursebrowser_javascript().
-                  &Apache::loncommon::authorbrowser_javascript());
-    }
     &print_rolerows($r,$doheaders,\%roleclass,\%sortrole,\%dcroles,\%roletext);
     if ($countactive > 1) {
         my $tremark='';
@@ -931,7 +939,7 @@
                     foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
                     if (!$allowed) {
                         $button=0;
-                        $switchserver='otherserver='.$home.'&role='.$trolecode;
+                        $switchserver='otherserver='.$home.'&amp;role='.$trolecode;
                     }
                     #next if ($home eq 'no_host');
                     $home = &Apache::lonnet::hostname($home);
@@ -951,7 +959,7 @@
                     foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
                     if (!$allowed) {
                         $button=0;
-                        $switchserver='otherserver='.$home.'&role='.$trolecode;
+                        $switchserver='otherserver='.$home.'&amp;role='.$trolecode;
                     }
                     #next if ($home eq 'no_host');
                     $home = &Apache::lonnet::hostname($home);
@@ -968,6 +976,7 @@
                     if ($env{'course.'.$tcourseid.'.description'}) {
                         $twhere=$env{'course.'.$tcourseid.'.description'};
                         $sortkey=$role."\0".$tdom."\0".$twhere."\0".$envkey;
+                        $twhere = &HTML::Entities::encode($twhere,'"<>&');
                         unless ($twhere eq &mt('Currently not available')) {
                             $twhere.=' <span class="LC_fontsize_small">'.
         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
@@ -978,7 +987,7 @@
                         if (%newhash) {
                             $sortkey=$role."\0".$tdom."\0".$newhash{'description'}.
                                 "\0".$envkey;
-                            $twhere=$newhash{'description'}.
+                            $twhere=&HTML::Entities::encode($newhash{'description'},'"<>&').
                               ' <span class="LC_fontsize_small">'.
         &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                               '</span>';
@@ -1543,10 +1552,12 @@
     my $advanced = $env{'user.adv'};
     my $tryagain = $env{'form.tryagain'};
     unless ($rolekey =~/^error\:/) {
-        if ($rolekey =~ m-^user\.role.(cc|co)\./($match_domain)/($match_courseid)$-) {
+        if ($rolekey =~ m{^user\.role\.(cc|co)\./($match_domain)/($match_courseid)$}) {
             my $ccrole = $1;
-            my $tcourseid = $2.'_'.$3;
-            my $trolecode = $1.'./'.$2.'/'.$3;
+            my $tdom = $2;
+            my $trest = $3;
+            my $tcourseid = $tdom.'_'.$trest;
+            my $trolecode = $ccrole.'./'.$tdom.'/'.$trest;
             my $twhere;
             my $ttype;
             my $tbg='LC_roles_is';
@@ -1554,7 +1565,7 @@
             if (%newhash) {
                 $twhere=$newhash{'description'}.
                         ' <span style="LC_fontsize_small">'.
-                        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$2,$1).
+                        &Apache::loncommon::syllabuswrapper(&mt('Syllabus'),$trest,$tdom).
                         '</span>';
                 $ttype = $newhash{'type'};
             } else {
@@ -1563,7 +1574,7 @@
             }
             my $trole = &Apache::lonnet::plaintext($ccrole,$ttype,$tcourseid);
             $twhere.="<br />".&mt('Domain').":".$1;
-            ($roletext,$roletext_end) = &build_roletext($trolecode,$1,$2,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
+            ($roletext,$roletext_end) = &build_roletext($trolecode,$tdom,$trest,'is',$tryagain,$advanced,'',$tbg,$trole,$twhere,'','','',1,'');
         }
     }
     return ($roletext,$roletext_end);
@@ -1581,7 +1592,7 @@
     my $carole = &Apache::lonnet::plaintext('ca');
     my $selectcalink = &coauthorlink($dcdom,$rowtype);
     $output.=$ccrole.': '.$selectcclink
-            .' | '.$carole.': '.$selectcalink
+            .' | '.$carole.': '.$selectcalink.'</td>'
             .&Apache::loncommon::end_data_table_row();
     return $output;
 }

--raeburn1275494199--