--- loncom/interface/portfolio.pm 2006/05/30 12:46:09 1.101 +++ loncom/interface/portfolio.pm 2006/06/07 18:41:48 1.102 @@ -126,12 +126,31 @@ sub display_directory { my $checked_files; my $port_path = &get_port_path($group); my ($uname,$udom) = &get_name_dom($group); - my $namespace = &get_namespace($group); if (defined($group)) { $groupitem = ''; $groupecho = '&group='.$group; } - my %locked_files = &Apache::lonnet::get_marked_as_readonly_hash ($namespace,$udom,$uname); + my $current_permissions = &Apache::lonnet::get_portfile_permissions($udom, + $uname); + my %locked_files = &Apache::lonnet::get_marked_as_readonly_hash( + $current_permissions,$group); + my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group); + my $now = time; + my $curr_access; + my $pub_access = 0; + foreach my $key (sort(keys(%access_controls))) { + my ($scope,$end,$start) = ($key =~ /^\d+:(\w+)_(\d*)_?(\d*)$/); + if (($now > $start) && (!$end || $end > $now)) { + if ($scope eq 'public') { + $pub_access = 1; + } + } + } + if (!$pub_access) { + $curr_access = 'Private' + } elsif ($pub_access) { + $curr_access = 'Public'; + } if ($env{"form.mode"} eq 'selectfile'){ &select_files($r); $checked_files =&Apache::lonnet::files_in_path($uname,$env{'form.currentpath'}); @@ -154,7 +173,7 @@ sub display_directory { $r->print('
'); } else { $r->print(''. - ''); + ''); $r->print(''); } if (defined($group)) { @@ -185,7 +204,7 @@ sub display_directory { } else { $r->print(''); if ($select_mode eq 'true'){ - $r->print(''); $r->print(''); $r->print(''); + $r->print(''); $r->print(''); } } @@ -232,7 +255,7 @@ sub display_directory { sub open_form { my ($r,$url)=@_; my @files=&Apache::loncommon::get_env_multiple('form.selectfile'); - $r->print(''); + $r->print(''); $r->print(''); $r->print(''); @@ -301,6 +324,7 @@ sub delete { my ($r,$url,$group)=@_; my @check; my $file_name = $env{'form.currentpath'}.$env{'form.selectfile'}; + $file_name = &prepend_group($file_name,$group); my @files=&Apache::loncommon::get_env_multiple('form.selectfile'); my ($uname,$udom) = &get_name_dom($group); if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { @@ -376,6 +400,7 @@ sub rename { my ($r,$url,$group)=@_; my $file_name = $env{'form.currentpath'}.$env{'form.rename'}; my ($uname,$udom) = &get_name_dom($group); + $file_name = &prepend_group($file_name,$group); if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { $r->print ("The file is locked and cannot be renamed.
"); $r->print(&done(undef,$url,$group)); @@ -413,6 +438,7 @@ sub rename_confirmed { } $r->print(&done(undef,$url,$group)); } + sub select_files { my ($r,$group)=@_; if ($env{'form.continue'} eq 'true') { @@ -479,8 +505,13 @@ sub upload { foreach my $line (@dir_list) { my ($file_name)=split(/\&/,$line,2); if ($file_name eq $fname){ + $file_name = $env{'form.currentpath'}.$file_name; + $file_name = &prepend_group($file_name,$group); $found_file = 1; - if (&Apache::lonnet::is_locked($env{'form.currentpath'}.$file_name,$udom,$uname) eq 'true') { + if (defined($group)) { + $file_name = $group.'/'.$file_name; + } + if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { $locked_file = 1; } } @@ -516,21 +547,35 @@ sub upload { sub lock_info { my ($r,$url,$group) = @_; my ($uname,$udom) = &get_name_dom($group); - my %current_permissions = &Apache::lonnet::dump('file_permissions',$udom,$uname); + my $current_permissions = &Apache::lonnet::get_portfile_permissions($udom, + $uname); my $file_name = $env{'form.lockinfo'}; - foreach my $key(keys(%current_permissions)) { - if ($file_name eq $key) { - foreach my $array_item (@{$current_permissions{$key}}) { - if (ref($array_item)) { - $r->print(''.$key.' was submitted in response to problem: '. - &Apache::lonnet::gettitle($$array_item[0]).'
'); - my %course_description = &Apache::lonnet::coursedescription($$array_item[1]); - $r->print('In the course: '.$course_description{'description'}.'
'); - # $r->print('the third is '.$$array_item[2].'
'); - # $r->print("item is $$array_item[0]
and $$array_item[0]"); + $file_name = &prepend_group($file_name,$group); + if (defined($file_name) && defined($$current_permissions{$file_name})) { + foreach my $array_item (@{$$current_permissions{$file_name}}) { + if (ref($array_item) eq 'ARRAY') { + if ($$array_item[0] eq 'access' || + $$array_item[0] eq 'accesscount' ) { + next; } + my $filetext; + if (defined($group)) { + $filetext = ''.$env{'form.lockinfo'}. + ' (group: '.$group.')'; + } else { + $filetext = ''.$file_name.''; + } + $r->print(&mt('[_1] was submitted in response to problem: ', + $filetext). + ''.&Apache::lonnet::gettitle($$array_item[0]). + '
'); + my %course_description = &Apache::lonnet::coursedescription($$array_item[1]); + $r->print(&mt('In the course: [_1]
', + $course_description{'description'})); + # $r->print('the third is '.$$array_item[2].'
'); + # $r->print("item is $$array_item[0]
and $$array_item[0]"); } - } + } } $r->print(&done('Back',$url,$group)); return 'ok'; @@ -605,6 +650,14 @@ sub get_name_dom { return ($uname,$udom); } +sub prepend_group { + my ($filename,$group) = @_; + if (defined($group)) { + $filename = $group.'/'.$filename; + } + return $filename; +} + sub get_namespace { my ($group) = @_; my $namespace = 'portfolio'; @@ -631,7 +684,7 @@ sub handler { my $r = shift; &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['selectfile','currentpath','meta','lockinfo','currentfile', - 'action','fieldname','mode','rename','continue','group']); + 'action','fieldname','mode','rename','continue','group','access']); my ($uname,$udom,$portfolio_root,$url,$group,$caller,$title); if ($r->uri =~ m|^(/adm/)([^/]+)|) { $url = $1.$2;
Actions NameSizeLast Modified
Actions NameSizeLast ModifiedCurrent Access Status
print('print("CHECKED"); } @@ -207,6 +226,10 @@ sub display_directory { $filename.''.$size.''.&Apache::lonlocal::locallocaltime($mtime).''.&mt($curr_access).'   '. + ''.&mt('View/Change').'