6 # acl_security_form(&options)
7 # Output HTML for editing global security options
12 # Root directory for file browser
13 print &ui_table_row($text{'acl_root'},
14 &ui_opt_textbox("root", $o->{'root'}, 40, $text{'acl_home'})." ".
15 &file_chooser_button("root", 1));
18 print &ui_table_row($text{'acl_otherdirs'},
19 &ui_textarea("otherdirs", join("\n", split(/\t+/, $o->{'otherdirs'})),
23 print &ui_table_row($text{'acl_nodot'},
24 &ui_yesno_radio("nodot", int($o->{'nodot'})));
27 print &ui_table_row($text{'acl_fileunix'},
28 &ui_opt_textbox("fileunix", $o->{'fileunix'}, 13,
29 $text{'acl_sameunix'})." ".
30 &user_chooser_button("fileunix"));
34 # Users visible in chooser
35 print &ui_table_row($text{'acl_uedit'},
36 &ui_radio_table("uedit_mode", int($o->{'uedit_mode'}),
37 [ [ 0, $text{'acl_uedit_all'} ],
38 [ 1, $text{'acl_uedit_none'} ],
39 [ 2, $text{'acl_uedit_only'},
40 &ui_textbox("uedit_can",
41 $o->{'uedit_mode'} == 2 ? $o->{'uedit'} : "", 40).
42 " ".&user_chooser_button("uedit_can", 1) ],
43 [ 3, $text{'acl_uedit_except'},
44 &ui_textbox("uedit_cannot",
45 $o->{'uedit_mode'} == 3 ? $o->{'uedit'} : "", 40).
46 " ".&user_chooser_button("uedit_cannot", 1) ],
47 [ 4, $text{'acl_uedit_uid'},
48 &ui_textbox("uedit_uid",
49 $o->{'uedit_mode'} == 4 ? $o->{'uedit'} : "", 6).
51 &ui_textbox("uedit_uid2",
52 $o->{'uedit_mode'} == 4 ? $o->{'uedit2'} : "", 6) ],
53 [ 5, $text{'acl_uedit_group'},
54 &ui_group_textbox("uedit_group",
55 $o->{'uedit_mode'} == 5 ? $dummy=getgrgid($o->{'uedit'}) : "")],
58 # Groups visible in chooser
59 print &ui_table_row($text{'acl_gedit'},
60 &ui_radio_table("gedit_mode", int($o->{'gedit_mode'}),
61 [ [ 0, $text{'acl_gedit_all'} ],
62 [ 1, $text{'acl_gedit_none'} ],
63 [ 2, $text{'acl_gedit_only'},
64 &ui_textbox("gedit_can",
65 $o->{'gedit_mode'} == 2 ? $o->{'gedit'} : "", 40).
66 " ".&group_chooser_button("gedit_can", 1) ],
67 [ 3, $text{'acl_gedit_except'},
68 &ui_textbox("gedit_cannot",
69 $o->{'gedit_mode'} == 3 ? $o->{'gedit'} : "", 40).
70 " ".&group_chooser_button("gedit_cannot", 1) ],
71 [ 4, $text{'acl_gedit_gid'},
72 &ui_textbox("gedit_gid",
73 $o->{'gedit_mode'} == 4 ? $o->{'gedit'} : "", 6).
75 &ui_textbox("gedit_gid2",
76 $o->{'gedit_mode'} == 4 ? $o->{'gedit2'} : "", 6) ],
81 # Can submit feedback?
82 print &ui_table_row($text{'acl_feedback'},
83 &ui_radio("feedback", int($o->{'feedback'}),
84 [ map { [ $_, $text{'acl_feedback'.$_} ] } (2,3,1,0) ]));
86 # Can accept RPC calls?
87 print &ui_table_row($text{'acl_rpc'},
88 &ui_radio("rpc", int($o->{'rpc'}),
89 [ [ 1, $text{'acl_rpc1'} ],
90 $o->{'rpc'} == 2 ? ( [ 2, $text{'acl_rpc2'} ] ) : ( ),
91 [ 0, $text{'acl_rpc0'} ] ]));
93 # Get new permissions?
94 print &ui_table_row($text{'acl_negative'},
95 &ui_radio("negative", int($o->{'negative'}),
96 [ [ 0, $text{'yes'} ], [ 1, $text{'no'} ] ]));
99 print &ui_table_row($text{'acl_readonly2'},
100 &ui_radio("readonly", int($o->{'readonly'}),
101 [ [ 1, $text{'acl_readonlyyes'} ],
102 [ 0, $text{'no'} ] ]));
105 # acl_security_save(&options)
106 # Parse the form for global security options
107 sub acl_security_save
109 $_[0]->{'root'} = $in{'root_def'} ? undef : $in{'root'};
110 $_[0]->{'otherdirs'} = join("\t", split(/\r?\n/, $in{'otherdirs'}));
111 $_[0]->{'nodot'} = $in{'nodot'};
113 $_[0]->{'uedit_mode'} = $in{'uedit_mode'};
114 $_[0]->{'uedit'} = $in{'uedit_mode'} == 2 ? $in{'uedit_can'} :
115 $in{'uedit_mode'} == 3 ? $in{'uedit_cannot'} :
116 $in{'uedit_mode'} == 4 ? $in{'uedit_uid'} :
117 $in{'uedit_mode'} == 5 ? getgrnam($in{'uedit_group'}) : "";
118 $_[0]->{'uedit2'} = $in{'uedit_mode'} == 4 ? $in{'uedit_uid2'} : undef;
120 $_[0]->{'gedit_mode'} = $in{'gedit_mode'};
121 $_[0]->{'gedit'} = $in{'gedit_mode'} == 2 ? $in{'gedit_can'} :
122 $in{'gedit_mode'} == 3 ? $in{'gedit_cannot'} :
123 $in{'gedit_mode'} == 4 ? $in{'gedit_gid'} : "";
124 $_[0]->{'gedit2'} = $in{'gedit_mode'} == 4 ? $in{'gedit_gid2'} : undef;
125 $_[0]->{'feedback'} = $in{'feedback'};
126 $_[0]->{'rpc'} = $in{'rpc'};
127 $_[0]->{'negative'} = $in{'negative'};
128 $_[0]->{'readonly'} = $in{'readonly'};
129 $_[0]->{'fileunix'} = $in{'fileunix_def'} ? undef : $in{'fileunix'};