version 1.624, 2005/04/15 22:03:23
|
version 1.629, 2005/04/25 17:18:15
|
Line 258 sub critical {
|
Line 258 sub critical {
|
|
|
sub transfer_profile_to_env { |
sub transfer_profile_to_env { |
my ($lonidsdir,$handle)=@_; |
my ($lonidsdir,$handle)=@_; |
|
undef(%env); |
my @profile; |
my @profile; |
{ |
{ |
open(my $idf,"$lonidsdir/$handle.id"); |
open(my $idf,"$lonidsdir/$handle.id"); |
Line 827 sub getsection {
|
Line 828 sub getsection {
|
} |
} |
|
|
sub save_cache { |
sub save_cache { |
|
my ($r)=@_; |
|
if (! $r->is_initial_req()) { return DECLINED; } |
&purge_remembered(); |
&purge_remembered(); |
undef(%env); |
undef(%env); |
|
return OK; |
} |
} |
|
|
my $to_remember=-1; |
my $to_remember=-1; |
Line 2561 sub convert_dump_to_currentdump{
|
Line 2565 sub convert_dump_to_currentdump{
|
return \%returnhash; |
return \%returnhash; |
} |
} |
|
|
|
# ------------------------------------------------------ critical inc interface |
|
|
|
sub cinc { |
|
return &inc(@_,'critical'); |
|
} |
|
|
# --------------------------------------------------------------- inc interface |
# --------------------------------------------------------------- inc interface |
|
|
sub inc { |
sub inc { |
my ($namespace,$store,$udomain,$uname) = @_; |
my ($namespace,$store,$udomain,$uname,$critical) = @_; |
if (!$udomain) { $udomain=$env{'user.domain'}; } |
if (!$udomain) { $udomain=$env{'user.domain'}; } |
if (!$uname) { $uname=$env{'user.name'}; } |
if (!$uname) { $uname=$env{'user.name'}; } |
my $uhome=&homeserver($uname,$udomain); |
my $uhome=&homeserver($uname,$udomain); |
Line 2582 sub inc {
|
Line 2592 sub inc {
|
} |
} |
} |
} |
$items=~s/\&$//; |
$items=~s/\&$//; |
return &reply("inc:$udomain:$uname:$namespace:$items",$uhome); |
if ($critical) { |
|
return &critical("inc:$udomain:$uname:$namespace:$items",$uhome); |
|
} else { |
|
return &reply("inc:$udomain:$uname:$namespace:$items",$uhome); |
|
} |
} |
} |
|
|
# --------------------------------------------------------------- put interface |
# --------------------------------------------------------------- put interface |
Line 3743 sub mark_as_readonly {
|
Line 3757 sub mark_as_readonly {
|
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
foreach my $file (@{$files}) { |
foreach my $file (@{$files}) { |
push(@{$current_permissions{$file}},$what); |
push(@{$current_permissions{$file}},$what); |
} |
} |
Line 3822 sub files_not_in_path {
|
Line 3835 sub files_not_in_path {
|
|
|
#--------------------------------------------------------------Get Marked as Read Only |
#--------------------------------------------------------------Get Marked as Read Only |
|
|
|
|
sub get_marked_as_readonly { |
sub get_marked_as_readonly { |
my ($domain,$user,$what) = @_; |
my ($domain,$user,$what) = @_; |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
my @readonly_files; |
my @readonly_files; |
|
my $cmp1=$what; |
|
if (ref($what)) { $cmp1=join('',@{$what}) }; |
while (my ($file_name,$value) = each(%current_permissions)) { |
while (my ($file_name,$value) = each(%current_permissions)) { |
if (ref($value) eq "ARRAY"){ |
if (ref($value) eq "ARRAY"){ |
foreach my $stored_what (@{$value}) { |
foreach my $stored_what (@{$value}) { |
if ($stored_what eq $what) { |
my $cmp2=$stored_what; |
|
if (ref($stored_what)) { $cmp2=join('',@{$stored_what}) }; |
|
if ($cmp1 eq $cmp2) { |
push(@readonly_files, $file_name); |
push(@readonly_files, $file_name); |
} elsif (!defined($what)) { |
} elsif (!defined($what)) { |
push(@readonly_files, $file_name); |
push(@readonly_files, $file_name); |
Line 3867 sub get_marked_as_readonly_hash {
|
Line 3884 sub get_marked_as_readonly_hash {
|
# ------------------------------------------------------------ Unmark as Read Only |
# ------------------------------------------------------------ Unmark as Read Only |
|
|
sub unmark_as_readonly { |
sub unmark_as_readonly { |
# unmarks all files locked by $what |
# unmarks $file_name (if $file_name is defined), or all files locked by $what |
# for portfolio submissions, $what contains $crsid and $symb |
# for portfolio submissions, $what contains [$symb,$crsid] |
my ($domain,$user,$what) = @_; |
my ($domain,$user,$what,$file_name) = @_; |
|
my $symb_crs = join('',@$what); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my %current_permissions = &dump('file_permissions',$domain,$user); |
my ($tmp)=keys(%current_permissions); |
my ($tmp)=keys(%current_permissions); |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
if ($tmp=~/^error:/) { undef(%current_permissions); } |
|
|
my @readonly_files = &get_marked_as_readonly($domain,$user,$what); |
my @readonly_files = &get_marked_as_readonly($domain,$user,$what); |
foreach my $file(@readonly_files){ |
foreach my $file(@readonly_files){ |
my $current_locks = $current_permissions{$file}; |
my $current_locks = $current_permissions{$file}; |
Line 3881 sub unmark_as_readonly {
|
Line 3898 sub unmark_as_readonly {
|
my @del_keys; |
my @del_keys; |
if (ref($current_locks) eq "ARRAY"){ |
if (ref($current_locks) eq "ARRAY"){ |
foreach my $locker (@{$current_locks}) { |
foreach my $locker (@{$current_locks}) { |
unless ($locker eq $what) { |
&logthis("$$locker[0].$$locker[1] eq $symb_crs"); |
|
if ($$locker[0].$$locker[1] eq $symb_crs) { |
|
if (defined($file_name) && ($file_name ne $file)) { |
|
push(@new_locks, $what); |
|
} |
|
} else { |
push(@new_locks, $what); |
push(@new_locks, $what); |
} |
} |
} |
} |
Line 4937 sub symbread {
|
Line 4959 sub symbread {
|
if ($#possibilities==0) { |
if ($#possibilities==0) { |
# ----------------------------------------------- There is only one possibility |
# ----------------------------------------------- There is only one possibility |
my ($mapid,$resid)=split(/\./,$ids); |
my ($mapid,$resid)=split(/\./,$ids); |
$syval=declutter($bighash{'map_id_'.$mapid}).'___'.$resid; |
$syval=&encode_symb($bighash{'map_id_'.$mapid}, |
|
$resid,$thisfn); |
} elsif (!$donotrecurse) { |
} elsif (!$donotrecurse) { |
# ------------------------------------------ There is more than one possibility |
# ------------------------------------------ There is more than one possibility |
my $realpossible=0; |
my $realpossible=0; |
Line 4947 sub symbread {
|
Line 4970 sub symbread {
|
my ($mapid,$resid)=split(/\./,$_); |
my ($mapid,$resid)=split(/\./,$_); |
if ($bighash{'map_type_'.$mapid} ne 'page') { |
if ($bighash{'map_type_'.$mapid} ne 'page') { |
$realpossible++; |
$realpossible++; |
$syval=declutter($bighash{'map_id_'.$mapid}). |
$syval=&encode_symb($bighash{'map_id_'.$mapid}, |
'___'.$resid; |
$resid,$thisfn); |
} |
} |
} |
} |
} |
} |
Line 4962 sub symbread {
|
Line 4985 sub symbread {
|
} |
} |
if ($syval) { |
if ($syval) { |
return $env{$cache_str}=$syval; |
return $env{$cache_str}=$syval; |
#return $env{$cache_str}=&symbclean($syval.'___'.$thisfn); |
|
} |
} |
} |
} |
&appenv('request.ambiguous' => $thisfn); |
&appenv('request.ambiguous' => $thisfn); |
Line 5310 sub receipt {
|
Line 5332 sub receipt {
|
|
|
sub getfile { |
sub getfile { |
my ($file) = @_; |
my ($file) = @_; |
|
&Apache::lonnet::logthis("file name is $file"); |
if ($file =~ m -^/*(uploaded|editupload)/-) { $file=&filelocation("",$file); } |
if ($file =~ m -^/*(uploaded|editupload)/-) { $file=&filelocation("",$file); } |
&repcopy($file); |
&repcopy($file); |
return &readfile($file); |
return &readfile($file); |