#!/usr/local/bin/perl # edit_perm.cgi # Display file permission options require './wuftpd-lib.pl'; &ui_print_header(undef, $text{'perm_title'}, "", "perm"); $conf = &get_ftpaccess(); @class = &find_value("class", $conf); print "
\n"; print "\n"; print "\n"; print "
$text{'perm_header'}
\n"; # Display permission options (chmod, delete, etc..) @permtypes = ( 'chmod', 'delete', 'overwrite', 'rename', 'umask' ); foreach $t (@permtypes) { push(@perms, &find($t, $conf)); } @perms = ( ( sort { $a->{'line'} <=> $b->{'line'} } @perms ), { } ); print "\n"; print "\n"; print "\n"; # Display path-filter options @filter = ( &find_value('path-filter', $conf), [ ] ); print "\n"; print "
$text{'perm_perms'}\n"; print "\n", "\n", "\n", "\n"; $i = 0; foreach $p (@perms) { $v = $p->{'values'}; print "\n"; print "\n"; printf "\n", lc($v->[0]) eq 'yes' ? '' : 'checked', $text{'no'}; local (%users, $notall); map { $users{$_}++; $notall++ if (/class=/) } split(/,/, $v->[1]); print "\n"; if (!$notall) { map { $users{"class=".$_->[0]}++ } @class; } print "\n"; $i++; } print "
$text{'perm_type'}$text{'perm_can'}$text{'perm_users'}$text{'perm_classes'}
%s\n", lc($v->[0]) eq 'yes' ? 'checked' : '', $text{'yes'}; printf " %s\n"; foreach $u ('anonymous', 'guest', 'real') { printf " %s\n", $i, $u, $users{$u} ? 'checked' : '', $text{"perm_$u"}; } print "\n"; foreach $c (@class) { printf " %s\n", $i, $c->[0], $users{"class=$c->[0]"} ? 'checked' : '', $c->[0]; } print "

$text{'perm_note'}

$text{'perm_filter'} \n"; print "\n", "\n", "\n", "\n"; $i = 0; foreach $f (@filter) { print "\n"; print "\n"; printf "\n", join(" ", @$f[3..@$f-1]); print "\n"; print "\n"; $i++; } print "
$text{'perm_char'}$text{'perm_regexp'}$text{'perm_types'}$text{'perm_mesg'}
\n"; foreach $u ('anonymous', 'guest', 'real') { printf " %s\n", $i, $u, $f->[0] =~ /$u/ ? 'checked' : '', $text{"perm_$u"}; } print "
\n"; print "
\n"; &ui_print_footer("", $text{'index_return'});