[LON-CAPA-cvs] cvs: loncom /interface lontiny.pm

raeburn raeburn at source.lon-capa.org
Fri Jun 12 01:00:24 EDT 2026


raeburn		Fri Jun 12 05:00:24 2026 EDT

  Modified files:              
    /loncom/interface	lontiny.pm 
  Log:
  - Make sure decision on including a section in selected role is based on 
    active role and not a past or future one.
  
  
Index: loncom/interface/lontiny.pm
diff -u loncom/interface/lontiny.pm:1.24 loncom/interface/lontiny.pm:1.25
--- loncom/interface/lontiny.pm:1.24	Fri Feb  7 20:23:42 2025
+++ loncom/interface/lontiny.pm	Fri Jun 12 05:00:24 2026
@@ -2,7 +2,7 @@
 # Extract domain, courseID, and symb from a shortened URL,
 # and switch role to a role in designated course.
 #
-# $Id: lontiny.pm,v 1.24 2025/02/07 20:23:42 raeburn Exp $
+# $Id: lontiny.pm,v 1.25 2026/06/12 05:00:24 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -212,13 +212,12 @@
                                     &Apache::lonnet::get_my_roles($env{'user.uname'},$env{'user.domain'},
                                                                   'userroles',['previous','active','future'],
                                                                   \@possroles,[$cdom],1);
-                                my (%possroles,$hassection,%active,%expired,%future);
+                                my ($hassection,%active,%expired,%future);
                                 if (keys(%roleshash)) {
                                     my $now = time;
                                     foreach my $entry (keys(%roleshash)) {
                                         if ($entry =~ /^\Q$cnum:$cdom:\E([^:]+):([^:]*)$/) {
                                             my ($role,$sec) = ($1,$2);
-                                            $possroles{$role} = $sec;
                                             if ($sec ne '') {
                                                 $hassection = 1;
                                             }
@@ -252,8 +251,8 @@
                                     if ($env{'form.selectrole'}) {
                                         foreach my $role (@allposs) {
                                             my $newrole = "$role./$cdom/$cnum";
-                                            if ($possroles{$allposs[0]} ne '') {
-                                                $newrole .= "/$possroles{$role}";
+                                            if ($active{$role} ne '') {
+                                                $newrole .= "/$active{$role}";
                                             }
                                             if ($env{"form.$newrole"}) {
                                                 my $destination .= '/adm/roles?selectrole=1&'.$newrole.'=1'.
@@ -272,9 +271,8 @@
                                                 $linkprotexit,$linkprotpbid,$linkprotpburl,$ltoken);
                                 } elsif (@allposs == 1) {
                                     my $newrole = "$allposs[0]./$cdom/$cnum";
-                                    $newrole = "$allposs[0]./$cdom/$cnum";
-                                    if ($possroles{$allposs[0]} ne '') {
-                                        $newrole .= "/$possroles{$allposs[0]}";
+                                    if ($active{$allposs[0]} ne '') {
+                                        $newrole .= "/$active{$allposs[0]}";
                                     }
                                     my $destination .= '/adm/roles?selectrole=1&'.$newrole.'=1'.
                                                        '&destinationurl='.&HTML::Entities::encode($r->uri,'&<>"');
@@ -285,7 +283,7 @@
                                 } elsif (@allposs > 1) {
                                     if (grep(/^(cc|co)$/, at allposs)) {
                                         my $newrole;
-                                        if (exists($possroles{'cc'})) {
+                                        if (exists($active{'cc'})) {
                                             $newrole = 'cc';
                                         } else {
                                             $newrole = 'co';




More information about the LON-CAPA-cvs mailing list