do 'web-lib.pl';
&init_config();
do 'ui-lib.pl';
# acl_security_form(&options)
# Output HTML for editing global security options
sub acl_security_form
{
local $o = $_[0];
# Root directory for file browser
print "
$text{'acl_root'} \n";
printf " %s\n",
$o->{'root'} ? '' : 'checked', $text{'acl_home'};
printf " \n",
$o->{'root'} ? 'checked' : '';
print " ",
&file_chooser_button("root", 1)," \n";
print &ui_table_row($text{'acl_otherdirs'},
&ui_textarea("otherdirs", join("\n", split(/\t+/, $o->{'otherdirs'})),
5, 40), 3);
# Can see dot files?
print " $text{'acl_nodot'} \n";
print "",&ui_yesno_radio("nodot", int($o->{'nodot'}))," \n";
# Browse as Unix user
print " $text{'acl_fileunix'} \n";
print "",&ui_opt_textbox("fileunix", $o->{'fileunix'}, 13,
$text{'acl_sameunix'})." ".
&user_chooser_button("fileunix")," \n";
print " \n";
# Users visible in chooser
print " $text{'acl_uedit'} \n";
printf " $text{'acl_uedit_all'}\n",
$o->{'uedit_mode'} == 0 ? "checked" : "";
printf " $text{'acl_uedit_none'} \n",
$o->{'uedit_mode'} == 1 ? "checked" : "";
printf " $text{'acl_uedit_only'}\n",
$o->{'uedit_mode'} == 2 ? "checked" : "";
printf " %s \n",
$o->{'uedit_mode'} == 2 ? $o->{'uedit'} : "",
&user_chooser_button("uedit_can", 1);
printf " $text{'acl_uedit_except'}\n",
$o->{'uedit_mode'} == 3 ? "checked" : "";
printf " %s \n",
$o->{'uedit_mode'} == 3 ? $o->{'uedit'} : "",
&user_chooser_button("uedit_cannot", 1);
printf " $text{'acl_uedit_uid'}\n",
$o->{'uedit_mode'} == 4 ? "checked" : "";
printf " - \n",
$o->{'uedit_mode'} == 4 ? $o->{'uedit'} : "";
printf " \n",
$o->{'uedit_mode'} == 4 ? $o->{'uedit2'} : "";
printf " $text{'acl_uedit_group'}\n",
$o->{'uedit_mode'} == 5 ? "checked" : "";
printf " %s \n",
$o->{'uedit_mode'} == 5 ? $dummy=getgrgid($o->{'uedit'}) : "",
&group_chooser_button("uedit_group", 0);
# Groups visible in chooser
print " $text{'acl_gedit'} \n";
printf " $text{'acl_gedit_all'}\n",
$o->{'gedit_mode'} == 0 ? "checked" : "";
printf " $text{'acl_gedit_none'} \n",
$o->{'gedit_mode'} == 1 ? "checked" : "";
printf " $text{'acl_gedit_only'}\n",
$o->{'gedit_mode'} == 2 ? "checked" : "";
printf " %s \n",
$o->{'gedit_mode'} == 2 ? $o->{'gedit'} : "",
&group_chooser_button("gedit_can", 1);
printf " $text{'acl_gedit_except'}\n",
$o->{'gedit_mode'} == 3 ? "checked" : "";
printf " %s \n",
$o->{'gedit_mode'} == 3 ? $o->{'gedit'} : "",
&group_chooser_button("gedit_cannot", 1);
printf " $text{'acl_gedit_gid'}\n",
$o->{'gedit_mode'} == 4 ? "checked" : "";
printf " -\n",
$o->{'gedit_mode'} == 4 ? $o->{'gedit'} : "";
printf " \n",
$o->{'gedit_mode'} == 4 ? $o->{'gedit2'} : "";
print " \n";
# Can submit feedback?
print " $text{'acl_feedback'} \n";
printf " %s\n",
$o->{'feedback'} == 2 ? "checked" : "", $text{'acl_feedback2'};
printf " %s\n",
$o->{'feedback'} == 3 ? "checked" : "", $text{'acl_feedback3'};
printf " %s\n",
$o->{'feedback'} == 1 ? "checked" : "", $text{'acl_feedback1'};
printf " %s \n",
$o->{'feedback'} == 0 ? "checked" : "", $text{'acl_feedback0'};
# Can accept RPC calls?
print " \n";
print " $text{'acl_rpc'} \n";
printf " %s\n",
$o->{'rpc'} == 1 ? "checked" : "", $text{'acl_rpc1'};
if ($o->{'rpc'} == 2) {
printf " %s\n",
$o->{'rpc'} == 2 ? "checked" : "", $text{'acl_rpc2'};
}
printf " %s \n",
$o->{'rpc'} == 0 ? "checked" : "", $text{'acl_rpc0'};
# Readonly mode
print " $text{'acl_readonly'} \n";
print "",&ui_yesno_radio("readonly", $o->{'readonly'})," \n";
}
# acl_security_save(&options)
# Parse the form for global security options
sub acl_security_save
{
$_[0]->{'root'} = $in{'root_def'} ? undef : $in{'root'};
$_[0]->{'otherdirs'} = join("\t", split(/\r?\n/, $in{'otherdirs'}));
$_[0]->{'nodot'} = $in{'nodot'};
$_[0]->{'uedit_mode'} = $in{'uedit_mode'};
$_[0]->{'uedit'} = $in{'uedit_mode'} == 2 ? $in{'uedit_can'} :
$in{'uedit_mode'} == 3 ? $in{'uedit_cannot'} :
$in{'uedit_mode'} == 4 ? $in{'uedit_uid'} :
$in{'uedit_mode'} == 5 ? getgrnam($in{'uedit_group'}) : "";
$_[0]->{'uedit2'} = $in{'uedit_mode'} == 4 ? $in{'uedit_uid2'} : undef;
$_[0]->{'gedit_mode'} = $in{'gedit_mode'};
$_[0]->{'gedit'} = $in{'gedit_mode'} == 2 ? $in{'gedit_can'} :
$in{'gedit_mode'} == 3 ? $in{'gedit_cannot'} :
$in{'gedit_mode'} == 4 ? $in{'gedit_gid'} : "";
$_[0]->{'gedit2'} = $in{'gedit_mode'} == 4 ? $in{'gedit_gid2'} : undef;
$_[0]->{'feedback'} = $in{'feedback'};
$_[0]->{'rpc'} = $in{'rpc'};
$_[0]->{'readonly'} = $in{'readonly'};
$_[0]->{'fileunix'} = $in{'fileunix_def'} ? undef : $in{'fileunix'};
}