2 # Editors for per-virtuser suexec directives
4 sub mod_suexec_directives
7 $rv = [ [ 'SuexecUserGroup', 0, 8, 'virtual', 2.0 ] ];
8 return &make_directives($rv, $_[0], "mod_suexec");
11 sub edit_SuexecUserGroup
14 $rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=1 %s> %s\n",
15 $_[0] ? "" : "checked", $text{'suexec_none'};
16 $rv .= sprintf "<input type=radio name=SuexecUserGroup_def value=0 %s>\n",
17 $_[0] ? "checked" : "";
18 $rv .= sprintf "%s <input name=SuexecUserGroup_u size=8 value='%s'> %s\n",
19 $text{'suexec_user'}, $_[0]->{'words'}->[0],
20 &user_chooser_button("SuexecUserGroup_u");
21 $rv .= sprintf "%s <input name=SuexecUserGroup_g size=8 value='%s'> %s\n",
22 $text{'suexec_group'}, $_[0]->{'words'}->[1],
23 &group_chooser_button("SuexecUserGroup_g");
24 return (2, $text{'suexec_su'}, $rv);
26 sub save_SuexecUserGroup
28 if ($in{'SuexecUserGroup_def'}) {
32 $in{'SuexecUserGroup_u'} =~ /^#-?\d+$/ ||
33 defined(getpwnam($in{'SuexecUserGroup_u'})) ||
34 &error($text{'suexec_euser'});
35 $in{'SuexecUserGroup_g'} =~ /^#-?\d+$/ ||
36 defined(getgrnam($in{'SuexecUserGroup_g'})) ||
37 &error($text{'suexec_egroup'});
38 return ( [ $in{'SuexecUserGroup_u'}." ".$in{'SuexecUserGroup_g'} ] );