version 1.1172.2.140, 2021/02/11 20:01:55
|
version 1.1172.2.140.2.2, 2021/11/09 20:51:53
|
Line 5470 my %cachedtimes=();
|
Line 5470 my %cachedtimes=();
|
my $cachedtime=''; |
my $cachedtime=''; |
|
|
sub load_all_first_access { |
sub load_all_first_access { |
my ($uname,$udom)=@_; |
my ($uname,$udom,$ignorecache)=@_; |
if (($cachedkey eq $uname.':'.$udom) && |
if (($cachedkey eq $uname.':'.$udom) && |
(abs($cachedtime-time)<5) && (!$env{'form.markaccess'})) { |
(abs($cachedtime-time)<5) && (!$env{'form.markaccess'}) && |
|
(!$ignorecache)) { |
return; |
return; |
} |
} |
$cachedtime=time; |
$cachedtime=time; |
Line 5481 sub load_all_first_access {
|
Line 5482 sub load_all_first_access {
|
} |
} |
|
|
sub get_first_access { |
sub get_first_access { |
my ($type,$argsymb,$argmap)=@_; |
my ($type,$argsymb,$argmap,$ignorecache)=@_; |
my ($symb,$courseid,$udom,$uname)=&whichuser(); |
my ($symb,$courseid,$udom,$uname)=&whichuser(); |
if ($argsymb) { $symb=$argsymb; } |
if ($argsymb) { $symb=$argsymb; } |
my ($map,$id,$res)=&decode_symb($symb); |
my ($map,$id,$res)=&decode_symb($symb); |
Line 5493 sub get_first_access {
|
Line 5494 sub get_first_access {
|
} else { |
} else { |
$res=$symb; |
$res=$symb; |
} |
} |
&load_all_first_access($uname,$udom); |
&load_all_first_access($uname,$udom,$ignorecache); |
return $cachedtimes{"$courseid\0$res"}; |
return $cachedtimes{"$courseid\0$res"}; |
} |
} |
|
|
Line 8480 sub get_commblock_resources {
|
Line 8481 sub get_commblock_resources {
|
my ($blocks) = @_; |
my ($blocks) = @_; |
my %blockers = (); |
my %blockers = (); |
return %blockers unless ($env{'request.course.id'}); |
return %blockers unless ($env{'request.course.id'}); |
return %blockers if ($env{'user.priv.'.$env{'request.role'}} =~/evb\&([^\:]*)/); |
my $courseurl = &courseid_to_courseurl($env{'request.course.id'}); |
|
if ($env{'request.course.sec'}) { |
|
$courseurl .= '/'.$env{'request.course.sec'}; |
|
} |
|
return %blockers if ($env{'user.priv.'.$env{'request.role'}.'.'.$courseurl} =~/evb\&([^\:]*)/); |
my %commblocks; |
my %commblocks; |
if (ref($blocks) eq 'HASH') { |
if (ref($blocks) eq 'HASH') { |
%commblocks = %{$blocks}; |
%commblocks = %{$blocks}; |
Line 8557 sub get_commblock_resources {
|
Line 8562 sub get_commblock_resources {
|
} |
} |
} |
} |
} |
} |
if ($interval[0] =~ /^\d+$/) { |
if ($interval[0] =~ /^(\d+)/) { |
|
my $timelimit = $1; |
my $first_access; |
my $first_access; |
if ($type eq 'resource') { |
if ($type eq 'resource') { |
$first_access=&get_first_access($interval[1],$item); |
$first_access=&get_first_access($interval[1],$item); |
Line 8567 sub get_commblock_resources {
|
Line 8573 sub get_commblock_resources {
|
$first_access=&get_first_access($interval[1]); |
$first_access=&get_first_access($interval[1]); |
} |
} |
if ($first_access) { |
if ($first_access) { |
my $timesup = $first_access+$interval[0]; |
my $timesup = $first_access+$timelimit; |
if ($timesup > $now) { |
if ($timesup > $now) { |
my $activeblock; |
my $activeblock; |
foreach my $res (@to_test) { |
foreach my $res (@to_test) { |
Line 8603 sub has_comm_blocking {
|
Line 8609 sub has_comm_blocking {
|
my @blockers; |
my @blockers; |
return unless ($env{'request.course.id'}); |
return unless ($env{'request.course.id'}); |
return unless ($priv eq 'bre'); |
return unless ($priv eq 'bre'); |
return if ($env{'user.priv.'.$env{'request.role'}} =~/evb\&([^\:]*)/); |
|
return if ($env{'request.state'} eq 'construct'); |
return if ($env{'request.state'} eq 'construct'); |
|
my $courseurl = &courseid_to_courseurl($env{'request.course.id'}); |
|
if ($env{'request.course.sec'}) { |
|
$courseurl .= '/'.$env{'request.course.sec'}; |
|
} |
|
return if ($env{'user.priv.'.$env{'request.role'}.'.'.$courseurl} =~/evb\&([^\:]*)/); |
my %blockinfo; |
my %blockinfo; |
if (ref($blocks) eq 'HASH') { |
if (ref($blocks) eq 'HASH') { |
%blockinfo = &get_commblock_resources($blocks); |
%blockinfo = &get_commblock_resources($blocks); |