From dccf781eae8a38a7f52f43a3b507334ce3faab26 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Thu, 15 Mar 2012 23:02:55 -0700 Subject: [PATCH] More work on new UI conversion --- samba/create_copy.cgi | 28 ++++---- samba/edit_sec.cgi | 160 +++++++++++++++++------------------------- samba/save_sec.cgi | 4 +- 3 files changed, 80 insertions(+), 112 deletions(-) diff --git a/samba/create_copy.cgi b/samba/create_copy.cgi index 022b6d038..500786967 100755 --- a/samba/create_copy.cgi +++ b/samba/create_copy.cgi @@ -11,21 +11,19 @@ require './samba-lib.pl'; &ui_print_header(undef, $text{'create_title'}, ""); -print $text{'create_msg'}; -print "

\n"; -print "

\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "
$text{'create_from'}
$text{'create_name'}
\n"; -print "

\n"; +print $text{'create_msg'},"

\n"; + +print &ui_form_start("save_copy.cgi", "post"); +print &ui_table_start(undef, undef, 2); + +print &ui_table_row($text{'create_from'}, + &ui_select("copy", undef, [ grep { $_ ne "global" } &list_shares() ])); + +print &ui_table_row($text{'create_name'}, + &ui_textbox("name", undef, 20)); + +print &ui_table_end(); +print &ui_form_end([ [ undef, $text{'create'} ] ]); &ui_print_footer("", $text{'index_sharelist'}); diff --git a/samba/edit_sec.cgi b/samba/edit_sec.cgi index 04e15ec02..132d40223 100755 --- a/samba/edit_sec.cgi +++ b/samba/edit_sec.cgi @@ -20,116 +20,86 @@ else { } &get_share($s); -print "

\n"; -print "\n"; -print "\n"; +print &ui_form_start("save_sec.cgi", "post"); +print &ui_hidden("old_name", $s); +print &ui_hidden("printer", $in{'printer'}); +print &ui_table_start($text{'share_security'}, undef, 2); -print "\n"; -print "\n"; -print "
$text{'share_security'}
\n"; +print &ui_table_row($text{'sec_writable'}, + &yesno_input("writeable")); -print "\n"; -print "\n"; +print &ui_table_row($text{'sec_guest'}, + &ui_radio("guest", &istrue("public") && &istrue("guest only") ? 2 : + &istrue("public") && !&istrue("guest only") ? 1 : 0, + [ [ 0, $text{'config_none'} ], + [ 1, $text{'yes'} ], + [ 2, $text{'sec_guestonly'} ] ])); -print "\n"; -printf "\n", - &istrue("public") && &istrue("guest only") ? "checked" : ""; +print &ui_table_row($text{'sec_guestaccount'}, + &username_input("guest account", "Default")); -print "\n"; -&username_input("guest account", "Default"); +print &ui_table_row($text{'sec_limit'}, + &yesno_input("only user")); -print "\n"; -print "\n"; +print &ui_table_row($text{'sec_allowhost'}, + &ui_opt_textbox("allow_hosts", &getval("allow hosts"), 60, + $text{'config_all'}, $text{'sec_onlyallow'})); -print "\n"; -printf "\n", - &getval("allow hosts"); +print &ui_table_row($text{'sec_denyhost'}, + &ui_opt_textbox("deny_hosts", &getval("deny hosts"), 60, + $text{'config_none'}, $text{'sec_onlydeny'})); -print "\n"; -printf "\n", - &getval("deny hosts"); +print &ui_table_row($text{'sec_revalidate'}, + &yesno_input("revalidate")); -print "\n"; -print "\n"; +foreach $f ("valid users", "invalid users") { + @user = &split_users(&getval($f)); + ($uf = $f) =~ s/ /_/g; + ($pfx) = split(/\s+/, $f); + print &ui_table_row($text{'sec_'.$pfx.'user'}, + &ui_textbox($uf."_u", + join(' ', grep { !/^@/ } @user), 60)." ". + &user_chooser_button($uf."_u", 1)); -@valid_users = &split_users(&getval("valid users")); -print "\n", - join(' ', grep { !/^@/ } @valid_users), - &user_chooser_button("valid_users_u", 1); -print "\n", - join(' ', map { s/@//;$_ } grep { /^@/ } @valid_users), - &group_chooser_button("valid_users_g", 1); + print &ui_table_row($text{'sec_'.$pfx.'group'}, + &ui_textbox($uf."_g", join(' ', map { s/@//; $_ } grep { /^@/ } @user), 60)." ". + &group_chooser_button($uf."_g", 1)); + } -@invalid_users = &split_users(&getval("invalid users")); -print "\n", - join(' ', grep { !/^@/ } @invalid_users), - &user_chooser_button("invalid_users_u", 1); -print "\n", - join(' ', map { s/@//;$_ } grep { /^@/ } @invalid_users), - &group_chooser_button("invalid_users_g", 1); +print &ui_table_hr(); -print "\n"; +foreach $fp ([ "user", "possible" ], + [ "read list", "ro" ], + [ "write list", "rw" ]) { + ($f, $pfx) = @$fp; + ($uf = $f) =~ s/ /_/g; + @user = &split_users(&getval($f)); + print &ui_table_row($text{'sec_'.$pfx.'user'}, + &ui_textbox($uf."_u", join(' ', grep { !/^@/ } @user), 60)." ". + &user_chooser_button($uf."_u")); + print &ui_table_row($text{'sec_'.$pfx.'group'}, + &ui_textbox($uf."_g", join(' ', map { s/@//;$_ } grep { /^@/ } @user), 60)." ". + &group_chooser_button($uf."_g")); + } -@user = &split_users(&getval("user")); -print "\n", - join(' ', grep { !/^@/ } @user), - &user_chooser_button("user_u", 1); -print "\n", - join(' ', map { s/@//;$_ } grep { /^@/ } @user), - &group_chooser_button("user_g", 1); +print &ui_table_end(); -@read_list = &split_users(&getval("read list")); -print "\n", - join(' ', grep { !/^@/ } @read_list), - &user_chooser_button("read_list_u", 1); -print "\n", - join(' ', map { s/@//;$_ } grep { /^@/ } @read_list), - &group_chooser_button("read_list_g", 1); - -@write_list = &split_users(&getval("write list")); -print "\n", - join(' ', grep { !/^@/ } @write_list), - &user_chooser_button("write_list_u", 1); -print "\n", - join(' ', map { s/@//;$_ } grep { /^@/ } @write_list), - &group_chooser_button("write_list_g", 1); - -print "
$text{'sec_writable'}",&yesno_input("writeable"),"$text{'sec_guest'} $text{'config_none'}\n", - &istrue("public") ? "" : "checked"; -printf " $text{'yes'}\n", - &istrue("public") && !&istrue("guest only") ? "checked" : ""; -printf " $text{'sec_guestonly'}
$text{'sec_guestaccount'}$text{'sec_limit'}",&yesno_input("only user"),"
$text{'sec_allowhost'} $text{'config_all'}\n", - &getval("allow hosts") eq "" ? "checked" : ""; -print "  \n"; -printf " $text{'sec_onlyallow'}:\n", - &getval("allow hosts") eq "" ? "" : "checked"; -printf "
$text{'sec_denyhost'} $text{'config_none'}\n", - &getval("deny hosts") eq "" ? "checked" : ""; -print "  \n"; -printf " $text{'sec_onlydeny'}:\n", - &getval("deny hosts") eq "" ? "" : "checked"; -printf "
$text{'sec_revalidate'}",&yesno_input("revalidate"),"
$text{'sec_validuser'} \n"; -printf " %s
$text{'sec_validgroup'} \n"; -printf " %s
$text{'sec_invaliduser'} \n"; -printf " %s
$text{'sec_invalidgroup'} \n"; -printf " %s

$text{'sec_possibleuser'} \n"; -printf " %s$text{'sec_possiblegroup'} \n"; -printf " %s
$text{'sec_rouser'} \n"; -printf " %s$text{'sec_rogroup'} \n"; -printf " %s
$text{'sec_rwuser'} \n"; -printf " %s$text{'sec_rwgroup'} \n"; -printf " %s
\n"; - -print "

\n"; -print "" - if &can('wS', \%access, $in{'share'}); -print "

\n"; - -if (&istrue("printable") || $in{'printer'}) { - &ui_print_footer("edit_pshare.cgi?share=".&urlize($s), $text{'index_printershare'}, "", $text{'index_sharelist'}); +if (&can('wS', \%access, $in{'share'})) { + print &ui_form_end([ [ undef, $text{'save'} ] ]); } else { - &ui_print_footer("edit_fshare.cgi?share=".&urlize($s), $text{'index_fileshare'}, "", $text{'index_sharelist'}); + print &ui_form_end(); + } + +if (&istrue("printable") || $in{'printer'}) { + &ui_print_footer("edit_pshare.cgi?share=".&urlize($s), + $text{'index_printershare'}, + "", $text{'index_sharelist'}); + } +else { + &ui_print_footer("edit_fshare.cgi?share=".&urlize($s), + $text{'index_fileshare'}, + "", $text{'index_sharelist'}); } diff --git a/samba/save_sec.cgi b/samba/save_sec.cgi index b101496f6..e9e5f67ec 100755 --- a/samba/save_sec.cgi +++ b/samba/save_sec.cgi @@ -40,11 +40,11 @@ else { &setval("write list", join(',', &split_input($in{'write_list_u'}), &split_input($in{'write_list_g'}, '@'))); -if (!$in{allow_hosts_all} && $in{allow_hosts} =~ /\S/) { +if (!$in{allow_hosts_def} && $in{allow_hosts} =~ /\S/) { &setval("allow hosts", $in{allow_hosts}); } else { &delval("allow hosts"); } -if (!$in{deny_hosts_all} && $in{deny_hosts} =~ /\S/) { +if (!$in{deny_hosts_def} && $in{deny_hosts} =~ /\S/) { &setval("deny hosts", $in{deny_hosts}); } else { &delval("deny hosts"); }