version 1.1485, 2022/05/26 02:07:36
|
version 1.1489, 2022/09/08 01:41:15
|
Line 4918 sub get_scantronformat_file {
|
Line 4918 sub get_scantronformat_file {
|
close($fh); |
close($fh); |
} |
} |
} |
} |
|
chomp(@lines); |
} |
} |
return @lines; |
return @lines; |
} |
} |
Line 7933 sub usertools_access {
|
Line 7934 sub usertools_access {
|
blog => 1, |
blog => 1, |
webdav => 1, |
webdav => 1, |
portfolio => 1, |
portfolio => 1, |
|
timezone => 1, |
); |
); |
} |
} |
return if (!defined($tools{$tool})); |
return if (!defined($tools{$tool})); |
Line 8128 sub check_can_request {
|
Line 8130 sub check_can_request {
|
my @options = ('approval','validate','autolimit'); |
my @options = ('approval','validate','autolimit'); |
my $optregex = join('|',@options); |
my $optregex = join('|',@options); |
if ((ref($can_request) eq 'HASH') && (ref($types) eq 'ARRAY')) { |
if ((ref($can_request) eq 'HASH') && (ref($types) eq 'ARRAY')) { |
|
my %willtrust; |
foreach my $type (@{$types}) { |
foreach my $type (@{$types}) { |
if (&usertools_access($uname,$udom,$type,undef, |
if (&usertools_access($uname,$udom,$type,undef, |
'requestcourses')) { |
'requestcourses')) { |
Line 8147 sub check_can_request {
|
Line 8150 sub check_can_request {
|
if (ref($request_domains) eq 'HASH') { |
if (ref($request_domains) eq 'HASH') { |
my ($otherdom) = ($item =~ /^($match_domain):($optregex)(=?\d*)$/); |
my ($otherdom) = ($item =~ /^($match_domain):($optregex)(=?\d*)$/); |
if ($otherdom ne '') { |
if ($otherdom ne '') { |
if (ref($request_domains->{$type}) eq 'ARRAY') { |
unless (exists($willtrust{$otherdom})) { |
unless (grep(/^\Q$otherdom\E$/,@{$request_domains->{$type}})) { |
$willtrust{$otherdom} = &will_trust('reqcrs',$env{'user.domain'},$otherdom); |
|
} |
|
if ($willtrust{$otherdom}) { |
|
if (ref($request_domains->{$type}) eq 'ARRAY') { |
|
unless (grep(/^\Q$otherdom\E$/,@{$request_domains->{$type}})) { |
|
push(@{$request_domains->{$type}},$otherdom); |
|
} |
|
} else { |
push(@{$request_domains->{$type}},$otherdom); |
push(@{$request_domains->{$type}},$otherdom); |
} |
} |
} else { |
|
push(@{$request_domains->{$type}},$otherdom); |
|
} |
} |
} |
} |
} |
} |
Line 13743 sub symbread {
|
Line 13751 sub symbread {
|
my %bighash; |
my %bighash; |
my $syval=''; |
my $syval=''; |
if (($env{'request.course.fn'}) && ($thisfn)) { |
if (($env{'request.course.fn'}) && ($thisfn)) { |
my $targetfn = $thisfn; |
|
if ($targetfn =~ m|^adm/wrapper/(ext/.*)|) { |
|
$targetfn=$1; |
|
} |
|
unless ($ignoresymbdb) { |
unless ($ignoresymbdb) { |
if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', |
if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.'_symb.db', |
&GDBM_READER(),0640)) { |
&GDBM_READER(),0640)) { |
$syval=$hash{$targetfn}; |
$syval=$hash{$thisfn}; |
untie(%hash); |
untie(%hash); |
} |
} |
if ($syval && $checkforblock) { |
if ($syval && $checkforblock) { |