--- loncom/lonnet/perl/lonnet.pm 2021/05/10 16:08:40 1.1452 +++ loncom/lonnet/perl/lonnet.pm 2021/05/10 18:13:50 1.1453 @@ -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 @@ sub allowed { # 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;