version 1.254.2.6.2.4, 2024/09/07 03:48:34
|
version 1.267, 2023/12/28 15:57:27
|
Line 237 sub display_directory_line {
|
Line 237 sub display_directory_line {
|
if ($lock_info) { |
if ($lock_info) { |
my %anchor_fields = ('lockinfo' => $fullpath); |
my %anchor_fields = ('lockinfo' => $fullpath); |
if ($versions) { # hold the folder open |
if ($versions) { # hold the folder open |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($fullpath); |
my ($fname,$version,$extension) = &Apache::lonnet::file_name_version_ext($fullpath); |
$fname =~ s|^/||; |
$fname =~ s|^/||; |
$anchor_fields{'showversions'} = $fname.'.'.$extension; |
$anchor_fields{'showversions'} = $fname.'.'.$extension; |
} |
} |
Line 267 sub display_directory_line {
|
Line 267 sub display_directory_line {
|
|
|
sub display_directory { |
sub display_directory { |
my ($r,$url,$current_path,$is_empty,$dir_list,$group,$can_upload, |
my ($r,$url,$current_path,$is_empty,$dir_list,$group,$can_upload, |
$can_modify,$can_delete,$can_setacl,$can_viewacl,$caller)=@_; |
$can_modify,$can_delete,$can_setacl,$can_viewacl)=@_; |
my $iconpath= $r->dir_config('lonIconsURL') . "/"; |
my $iconpath= $r->dir_config('lonIconsURL') . "/"; |
my $select_mode; |
my $select_mode; |
my $checked_files; |
my $checked_files; |
Line 314 sub display_directory {
|
Line 314 sub display_directory {
|
&mt('Using the portfolio file list')) |
&mt('Using the portfolio file list')) |
.'</p>' |
.'</p>' |
); |
); |
my ($acl_helpfile,$acl_helplink); |
|
if ($can_setacl) { |
|
$acl_helpfile = 'Portfolio ShareFile'; |
|
} elsif ($caller eq 'coursegrp_portfolio') { |
|
$acl_helpfile = 'Portfolio ShareFile Group'; |
|
} |
|
unless ($can_setacl || $can_viewacl) { |
|
$acl_helpfile = 'Portfolio ShareFile Off'; |
|
} |
|
if ($acl_helpfile) { |
|
$acl_helplink = &Apache::loncommon::help_open_topic($acl_helpfile); |
|
} |
|
$r->print(&Apache::loncommon::start_data_table() |
$r->print(&Apache::loncommon::start_data_table() |
.&Apache::loncommon::start_data_table_header_row() |
.&Apache::loncommon::start_data_table_header_row() |
.'<th colspan="2">'.&mt('Actions'). &Apache::loncommon::help_open_topic('Portfolio FileAction').'</th>' |
.'<th colspan="2">'.&mt('Actions'). &Apache::loncommon::help_open_topic('Portfolio FileAction').'</th>' |
Line 335 sub display_directory {
|
Line 323 sub display_directory {
|
.'<th>'.&mt('Size').'</th>' |
.'<th>'.&mt('Size').'</th>' |
.'<th>'.&mt('Last Modified').'</th>' |
.'<th>'.&mt('Last Modified').'</th>' |
.'<th> </th>' |
.'<th> </th>' |
.'<th>'.&mt('Current Access Status').$acl_helplink.'</th>' |
.'<th>'.&mt('Current Access Status').&Apache::loncommon::help_open_topic('Portfolio ShareFile').'</th>' |
.&Apache::loncommon::end_data_table_header_row()); |
.&Apache::loncommon::end_data_table_header_row()); |
} |
} |
|
|
Line 385 sub display_directory {
|
Line 373 sub display_directory {
|
} (@{$dir_list})) { |
} (@{$dir_list})) { |
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16); |
my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16); |
$filename =~ s/\s+$//; |
$filename =~ s/\s+$//; |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); |
my ($fname,$version,$extension) = &Apache::lonnet::file_name_version_ext($filename); |
if ($version) { |
if ($version) { |
my $fullpath = &prepend_group($current_path.$fname.'.'.$extension); |
my $fullpath = &prepend_group($current_path.$fname.'.'.$extension); |
push(@{ $versioned{$fullpath} }, |
push(@{ $versioned{$fullpath} }, |
Line 398 sub display_directory {
|
Line 386 sub display_directory {
|
my $zerobyte; |
my $zerobyte; |
foreach my $dir_line (@dir_lines) { |
foreach my $dir_line (@dir_lines) { |
my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; |
my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line; |
my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename); |
my ($fname,$version,$extension) = &Apache::lonnet::file_name_version_ext($filename); |
if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) { |
if (($filename ne '.') && ($filename ne '..') && ($filename !~ /\.meta$/ ) && ($filename !~ /(.*)\.(\d+)\.([^\.]*)$/)) { |
my $version_flag; |
my $version_flag; |
my $show_versions; |
my $show_versions; |
Line 502 sub display_directory {
|
Line 490 sub display_directory {
|
my $cond_access = 0; |
my $cond_access = 0; |
foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) { |
foreach my $key (sort(keys(%{$access_controls{$fullpath}}))) { |
my ($num,$scope,$end,$start) = &unpack_acc_key($key); |
my ($num,$scope,$end,$start) = &unpack_acc_key($key); |
next if ($scope eq 'ip'); |
|
if (($now > $start) && (!$end || $end > $now)) { |
if (($now > $start) && (!$end || $end > $now)) { |
if ($scope eq 'public') { |
if ($scope eq 'public') { |
$pub_access = 1; |
$pub_access = 1; |
Line 1018 sub build_access_summary {
|
Line 1005 sub build_access_summary {
|
domains => 'Conditional: domain-based', |
domains => 'Conditional: domain-based', |
users => 'Conditional: user-based', |
users => 'Conditional: user-based', |
course => 'Conditional: course/community-based', |
course => 'Conditional: course/community-based', |
userip => 'Conditional: IP-based', |
ip => 'Conditional: IP-based', |
); |
); |
my @allscopes = ('public','guest','domains','users','course','userip'); |
my @allscopes = ('public','guest','domains','users','course','ip'); |
foreach my $scope (@allscopes) { |
foreach my $scope (@allscopes) { |
if ((!(exists($todisplay{$scope}))) || (ref($todisplay{$scope}) ne 'HASH')) { |
if ((!(exists($todisplay{$scope}))) || (ref($todisplay{$scope}) ne 'HASH')) { |
next; |
next; |
Line 1097 sub build_access_summary {
|
Line 1084 sub build_access_summary {
|
} elsif ($scope eq 'users') { |
} elsif ($scope eq 'users') { |
my $curr_user_list = &sort_users($content->{'users'}); |
my $curr_user_list = &sort_users($content->{'users'}); |
$r->print(&mt('Users: ').$curr_user_list); |
$r->print(&mt('Users: ').$curr_user_list); |
} elsif ($scope eq 'userip') { |
} elsif ($scope eq 'ip') { |
my $curr_ips_list = &sort_ips($content->{'userip'}); |
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 { |
} else { |
$r->print(' '); |
$r->print(' '); |
Line 1208 sub update_access {
|
Line 1195 sub update_access {
|
my $totalnew = 0; |
my $totalnew = 0; |
my $status = 'new'; |
my $status = 'new'; |
my ($firstitem,$lastitem); |
my ($firstitem,$lastitem); |
my @types = ('course','domains','users','userip'); |
my @types = ('course','domains','users','ip'); |
foreach my $newitem (@types) { |
foreach my $newitem (@types) { |
$allnew += $env{'form.new'.$newitem}; |
$allnew += $env{'form.new'.$newitem}; |
} |
} |
Line 1220 sub update_access {
|
Line 1207 sub update_access {
|
course => 'course/community', |
course => 'course/community', |
domains => 'domain', |
domains => 'domain', |
users => 'user', |
users => 'user', |
userip => 'IP', |
ip => 'IP', |
); |
); |
foreach my $newitem (@types) { |
foreach my $newitem (@types) { |
next if ($env{'form.new'.$newitem} <= 0); |
next if ($env{'form.new'.$newitem} <= 0); |
Line 1324 sub build_access_record {
|
Line 1311 sub build_access_record {
|
'udom' => $udom |
'udom' => $udom |
}); |
}); |
} |
} |
} elsif ($scope eq 'userip') { |
} elsif ($scope eq 'ip') { |
my $ipslist = $env{'form.ips_'.$num}; |
my $ipslist = $env{'form.ips_'.$num}; |
$ipslist =~ s/\s+//sg; |
$ipslist =~ s/\s+//sg; |
my %ipshash = map { ($_,1) } (split(/,/,$ipslist)); |
my %ipshash = map { ($_,1) } (split(/,/,$ipslist)); |
Line 1395 sub access_setting_table {
|
Line 1382 sub access_setting_table {
|
push(@domains,$key); |
push(@domains,$key); |
} elsif ($scope eq 'users') { |
} elsif ($scope eq 'users') { |
push(@users,$key); |
push(@users,$key); |
} elsif ($scope eq 'userip') { |
} elsif ($scope eq 'ip') { |
push(@ips,$key); |
push(@ips,$key); |
} |
} |
} |
} |
Line 1457 sub standard_settings {
|
Line 1444 sub standard_settings {
|
my $numconditionals = 0; |
my $numconditionals = 0; |
my $conditionstext; |
my $conditionstext; |
my %cond_status; |
my %cond_status; |
foreach my $scope ('domains','users','course','userip') { |
foreach my $scope ('domains','users','course','ip') { |
$numconditionals += $acl_count->{$scope}; |
$numconditionals += $acl_count->{$scope}; |
if ($acl_count->{$scope} > 0) { |
if ($acl_count->{$scope} > 0) { |
if ($conditionstext ne 'Active') { |
if ($conditionstext ne 'Active') { |
Line 1504 sub condition_setting {
|
Line 1491 sub condition_setting {
|
$r->print('</td></tr><tr><td colspan="3"></td></tr><tr><td valign="top">'); |
$r->print('</td></tr><tr><td colspan="3"></td></tr><tr><td valign="top">'); |
&access_element($r,'course',$acl_count,$courses,$access_controls,$now,$then); |
&access_element($r,'course',$acl_count,$courses,$access_controls,$now,$then); |
$r->print('</td><td> </td><td valign="top">'); |
$r->print('</td><td> </td><td valign="top">'); |
&access_element($r,'userip',$acl_count,$ips,$access_controls,$now,$then); |
&access_element($r,'ip',$acl_count,$ips,$access_controls,$now,$then); |
$r->print('</td></tr></table>'); |
$r->print('</td></tr></table>'); |
} |
} |
|
|
Line 1525 sub access_element {
|
Line 1512 sub access_element {
|
domains => 'Domain', |
domains => 'Domain', |
users => 'User', |
users => 'User', |
course => 'Course/Community', |
course => 'Course/Community', |
userip => 'IP', |
ip => 'IP', |
); |
); |
$r->print('<h3>'.&mt($typetext{$type}.'-based conditional access:').' '); |
$r->print('<h3>'.&mt($typetext{$type}.'-based conditional access:').' '); |
if ($$acl_count{$type}) { |
if ($$acl_count{$type}) { |
Line 1550 sub display_access_row {
|
Line 1537 sub display_access_row {
|
} elsif ($type eq 'users') { |
} elsif ($type eq 'users') { |
$showtype = &mt('Users'); |
$showtype = &mt('Users'); |
$infotype = 'User'; |
$infotype = 'User'; |
} elsif ($type eq 'userip') { |
} elsif ($type eq 'ip') { |
$showtype = &mt('IP-based'); |
$showtype = &mt('IP-based'); |
$infotype = 'IP'; |
$infotype = 'IP'; |
} |
} |
Line 1578 sub display_access_row {
|
Line 1565 sub display_access_row {
|
$then); |
$then); |
} elsif ($type eq 'users') { |
} elsif ($type eq 'users') { |
&users_row($r,$status,$key,$access_controls,$now,$then); |
&users_row($r,$status,$key,$access_controls,$now,$then); |
} elsif ($type eq 'userip') { |
} elsif ($type eq 'ip') { |
&ips_row($r,$status,$key,$access_controls,$now,$then); |
&ips_row($r,$status,$key,$access_controls,$now,$then); |
} |
} |
$r->print(&Apache::loncommon::end_data_table_row()); |
$r->print(&Apache::loncommon::end_data_table_row()); |
Line 1761 sub users_row {
|
Line 1748 sub users_row {
|
sub ips_row { |
sub ips_row { |
my ($r,$status,$item,$access_controls,$now,$then) = @_; |
my ($r,$status,$item,$access_controls,$now,$then) = @_; |
my ($num,$scope,$end,$start) = &set_identifiers($status,$item,$now,$then, |
my ($num,$scope,$end,$start) = &set_identifiers($status,$item,$now,$then, |
'userip'); |
'ip'); |
my $curr_ips_list; |
my $curr_ips_list; |
if ($status eq 'old') { |
if ($status eq 'old') { |
my $content = $$access_controls{$item}; |
my $content = $$access_controls{$item}; |
$curr_ips_list = &sort_ips($content->{'userip'}); |
$curr_ips_list = &sort_ips($content->{'ip'}); |
} |
} |
$r->print('<td>'.&actionbox($status,$num,$scope).'</td><td>'.&mt('Format for IP controls').'<br />'. |
$r->print('<td>'.&actionbox($status,$num,$scope).'</td><td>'.&mt('Format for IP controls').'<br />'. |
&mt('[_1] or [_2] or [_3] or [_4] or [_5]','<tt>35.8.*</tt>','<tt>35.8.3.[34-56]</tt>', |
&mt('[_1] or [_2] or [_3] or [_4] or [_5]','<tt>35.8.*</tt>','<tt>35.8.3.[34-56]</tt>', |
Line 1784 sub additional_item {
|
Line 1771 sub additional_item {
|
$showtype = 'domain'; |
$showtype = 'domain'; |
} elsif ($type eq 'users') { |
} elsif ($type eq 'users') { |
$showtype = 'user'; |
$showtype = 'user'; |
} elsif ($type eq 'userip') { |
} elsif ($type eq 'ip') { |
$showtype = 'IP'; |
$showtype = 'IP'; |
} |
} |
return |
return |
Line 1798 sub actionbox {
|
Line 1785 sub actionbox {
|
my $output = '<span class="LC_nobreak"><label>'; |
my $output = '<span class="LC_nobreak"><label>'; |
if ($status eq 'new') { |
if ($status eq 'new') { |
my $checkstate; |
my $checkstate; |
if ($scope eq 'domains' || $scope eq 'users' || $scope eq 'course' || $scope eq 'userip') { |
if ($scope eq 'domains' || $scope eq 'users' || $scope eq 'course' || $scope eq 'ip') { |
$checkstate = 'checked="checked"'; |
$checkstate = 'checked="checked"'; |
} |
} |
$output .= '<input type="checkbox" name="activate" value="'.$num.'" '. |
$output .= '<input type="checkbox" name="activate" value="'.$num.'" '. |
Line 2780 sub handler {
|
Line 2767 sub handler {
|
|
|
my $js = '<script type="text/javascript" |
my $js = '<script type="text/javascript" |
src="/res/adm/includes/file_upload.js"></script>'; |
src="/res/adm/includes/file_upload.js"></script>'; |
|
|
if ($env{"form.mode"} eq 'selectfile'){ |
if ($env{"form.mode"} eq 'selectfile'){ |
$r->print(&Apache::loncommon::start_page($title, $js, |
$r->print(&Apache::loncommon::start_page($title, $js, |
{'only_body' => 1})); |
{'only_body' => 1})); |
Line 3031 sub handler {
|
Line 3018 sub handler {
|
$can_upload,$group); |
$can_upload,$group); |
&display_directory($r,$url,$current_path,$is_empty,$dirlistref,$group, |
&display_directory($r,$url,$current_path,$is_empty,$dirlistref,$group, |
$can_upload,$can_modify,$can_delete,$can_setacl, |
$can_upload,$can_modify,$can_delete,$can_setacl, |
$can_viewacl,$caller); |
$can_viewacl); |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |