3 # Update or delete a Samba group
5 require './samba-lib.pl';
7 $access{'maint_groups'} || &error($text{'groups_ecannot'});
9 @groups = &list_groups();
10 $group = $groups[$in{'idx'}] if (!$in{'new'});
11 $oldname = $group->{'name'} || $in{'name'};
14 # Just remove this group
15 &delete_group($group);
19 &error_setup($text{'gsave_err'});
21 $in{'name'} =~ /\S/ || &error($text{'gsave_ename'});
22 $group->{'name'} = $in{'name'};
24 $group->{'type'} = $in{'type'};
25 if ($in{'unix_def'}) {
26 $group->{'unix'} = -1;
29 getgrnam($in{'unix'}) || $in{'unix'} =~ /^\-?\d+$/ ||
30 &error($text{'gsave_eunix'});
31 $group->{'unix'} = $in{'unix'};
33 $group->{'desc'} = $in{'desc'};
34 if ($in{'new'} && !$in{'priv_def'}) {
35 $in{'priv'} =~ /\S/ || &error($text{'gsave_epriv'});
36 $in{'type'} eq 'l' || &error($text{'gsave_elocal'});
37 $group->{'priv'} = $in{'priv'};
40 # Update or create the group
42 &create_group($group);
45 &modify_group($group);
48 &webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify",
49 "group", $oldname, \%group);
50 &redirect("list_groups.cgi");