[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm

raeburn raeburn at source.lon-capa.org
Mon May 10 14:13:50 EDT 2021


raeburn		Mon May 10 18:13:50 2021 EDT

  Modified files:              
    /loncom/lonnet/perl	lonnet.pm 
  Log:
  - Speed-up &allowed() by ignoring expired or future student or ta roles 
    (unless current role) when checking for course.*.lock.sections in %env.
  
  
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.1452 loncom/lonnet/perl/lonnet.pm:1.1453
--- loncom/lonnet/perl/lonnet.pm:1.1452	Mon May 10 16:08:40 2021
+++ loncom/lonnet/perl/lonnet.pm	Mon May 10 18:13:50 2021
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.1452 2021/05/10 16:08:40 raeburn Exp $
+# $Id: lonnet.pm,v 1.1453 2021/05/10 18:13:50 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -8533,13 +8533,17 @@
 # Locks might take effect only after 10 minutes cache expiration for other
 # courses, and 2 minutes for current course
 
-    my $envkey;
     if ($thisallowed=~/L/) {
-        foreach $envkey (keys(%env)) {
+        my $now = time;
+        foreach my $envkey (keys(%env)) {
            if ($envkey=~/^user\.role\.(st|ta)\.([^\.]*)/) {
                my $courseid=$2;
                my $roleid=$1.'.'.$2;
                $courseid=~s/^\///;
+               unless ($env{'request.role'} eq $roleid) {
+                   my ($start,$end) = split(/\./,$env{$envkey});
+                   next unless (($now >= $start) && (!$end || $end > $now));
+               }
                my $expiretime=600;
                if ($env{'request.role'} eq $roleid) {
 		  $expiretime=120;




More information about the LON-CAPA-cvs mailing list