--- loncom/interface/portfolio.pm 2016/06/10 22:31:27 1.257 +++ loncom/interface/portfolio.pm 2017/08/12 01:32:14 1.259 @@ -1,7 +1,7 @@ # The LearningOnline Network # portfolio browser # -# $Id: portfolio.pm,v 1.257 2016/06/10 22:31:27 raeburn Exp $ +# $Id: portfolio.pm,v 1.259 2017/08/12 01:32:14 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1073,7 +1073,7 @@ sub build_access_summary { $r->print(&mt('Users: ').$curr_user_list); } elsif ($scope eq 'ip') { my $curr_ips_list = &sort_ips($content->{'ip'}); - $r->print(&mt('IP(s): ').$curr_ips_list); + $r->print(&mt('IP(s):').' '.$curr_ips_list); } else { $r->print(' '); } @@ -2615,6 +2615,45 @@ sub free_space { return $free_space; } +sub valid_container { + my ($uname,$udom,$group) = @_; + my $container_prefix; + if ($group ne '') { + $container_prefix = "/uploaded/$udom/$uname/groups/$group/portfolio"; + } else { + $container_prefix = "/uploaded/$udom/$uname/portfolio"; + } + if ($env{'form.currentpath'}) { + $container_prefix .= $env{'form.currentpath'}; + } else { + $container_prefix .= '/'; + } + if ($env{'form.container'} =~ m{^\Q$container_prefix\E(.+)$}) { + my $filename = $1; + if ($filename eq &Apache::lonnet::clean_filename($filename)) { + return 1; + } + } + return; +} + +sub invalid_parms { + my ($r,$url,$currentpath) = @_; + my $escpath = &HTML::Entities::encode($currentpath,'&<>"'); + my $rtnlink = ''.&mt('Return to directory').''; + $r->print('