[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Fri, 30 Jun 2006 00:26:50 -0000
albertel Thu Jun 29 20:26:50 2006 EDT
Modified files:
/loncom/lonnet/perl lonnet.pm
Log:
- portfile in some locations are portfoilo/filename other places /filename, making unmark and mark readyonly clean references before looking at them
- also correct an incorrect use of ref that made things never become unlocked
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.758 loncom/lonnet/perl/lonnet.pm:1.759
--- loncom/lonnet/perl/lonnet.pm:1.758 Mon Jun 26 14:56:03 2006
+++ loncom/lonnet/perl/lonnet.pm Thu Jun 29 20:26:49 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network
# TCP networking package
#
-# $Id: lonnet.pm,v 1.758 2006/06/26 18:56:03 albertel Exp $
+# $Id: lonnet.pm,v 1.759 2006/06/30 00:26:49 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -4582,6 +4582,14 @@
}
}
+sub declutter_portfile {
+ my ($file) = @_;
+ &logthis("got $file");
+ $file =~ s-^(/portfolio/|portfolio/)-/-;
+ &logthis("ret $file");
+ return $file;
+}
+
# ------------------------------------------------------------- Mark as Read Only
sub mark_as_readonly {
@@ -4590,6 +4598,7 @@
my ($tmp)=keys(%current_permissions);
if ($tmp=~/^error:/) { undef(%current_permissions); }
foreach my $file (@{$files}) {
+ $file = &declutter_portfile($file);
push(@{$current_permissions{$file}},$what);
}
&put('file_permissions',\%current_permissions,$domain,$user);
@@ -4811,7 +4820,7 @@
if (ref($value) eq "ARRAY"){
foreach my $stored_what (@{$value}) {
my $cmp2=$stored_what;
- if (ref($stored_what eq 'ARRAY')) {
+ if (ref($stored_what) eq 'ARRAY') {
$cmp2=join('',@{$stored_what});
}
if ($cmp1 eq $cmp2) {
@@ -4863,6 +4872,7 @@
# unmarks $file_name (if $file_name is defined), or all files locked by $what
# for portfolio submissions, $what contains [$symb,$crsid]
my ($domain,$user,$what,$file_name,$group) = @_;
+ $file_name = &declutter_portfile($file_name);
my $symb_crs = $what;
if (ref($what)) { $symb_crs=join('',@$what); }
my %current_permissions = &dump('file_permissions',$domain,$user,$group);
@@ -4870,7 +4880,8 @@
if ($tmp=~/^error:/) { undef(%current_permissions); }
my @readonly_files = &get_marked_as_readonly($domain,$user,$what,$group);
foreach my $file (@readonly_files) {
- if (defined($file_name) && ($file_name ne $file)) { next; }
+ my $clean_file = &declutter_portfile($file);
+ if (defined($file_name) && ($file_name ne $clean_file)) { next; }
my $current_locks = $current_permissions{$file};
my @new_locks;
my @del_keys;