3 # Save secuirty options for a share
5 require './samba-lib.pl';
7 &lock_file($config{'smb_conf'});
8 &get_share($in{old_name});
12 &error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
13 &error("$text{'eacl_np'} $text{'eacl_pusec'}")
14 unless &can('rwsS', \%access, $in{old_name});
16 &error_setup($text{'savesec_fail'});
18 &setval("writeable", $in{writeable});
19 if ($in{guest} == 0) {
20 &delval("public"); &delval("guest only");
22 elsif ($in{guest} == 1) {
23 &setval("public", "yes"); &delval("guest only");
26 &setval("public", "yes"); &setval("guest only", "yes");
28 &setval("valid users",
29 join(',', &split_input($in{'valid_users_u'}),
30 &split_input($in{'valid_users_g'}, '@')));
31 &setval("invalid users",
32 join(',', &split_input($in{'invalid_users_u'}),
33 &split_input($in{'invalid_users_g'}, '@')));
35 join(',', &split_input($in{'user_u'}),
36 &split_input($in{'user_g'}, '@')));
38 join(',', &split_input($in{'read_list_u'}),
39 &split_input($in{'read_list_g'}, '@')));
41 join(',', &split_input($in{'write_list_u'}),
42 &split_input($in{'write_list_g'}, '@')));
43 if (!$in{allow_hosts_all} && $in{allow_hosts} =~ /\S/) {
44 &setval("allow hosts", $in{allow_hosts});
46 else { &delval("allow hosts"); }
47 if (!$in{deny_hosts_all} && $in{deny_hosts} =~ /\S/) {
48 &setval("deny hosts", $in{deny_hosts});
50 else { &delval("deny hosts"); }
51 &setval("guest account", $in{guest_account});
52 &setval("only user", $in{only_user});
53 &setval("revalidate", $in{revalidate});
55 &modify_share($in{old_name}, $in{old_name});
56 &unlock_file($config{'smb_conf'});
57 &webmin_log("save", "sec", $in{old_name}, \%in);
58 if (&istrue("printable") || $in{'printer'})
59 { &redirect("edit_pshare.cgi?share=".&urlize($in{old_name})); }
61 { &redirect("edit_fshare.cgi?share=".&urlize($in{old_name})); }
63 # split_input(string, [prepend])
68 while($str =~ /^\s*(\S*"[^"]+"\S*)(.*)$/ || $str =~ /^\s*(\S+)(.*)$/) {