Handle hostnames with upper-case letters
[webmin.git] / usermin / change_users.cgi
1 #!/usr/local/bin/perl
2 # change_users.cgi
3 # Update user allow and deny parameters
4
5 require './usermin-lib.pl';
6 $access{'users'} || &error($text{'acl_ecannot'});
7 use Socket;
8 &ReadParse();
9 &error_setup($text{'users_err'});
10
11 @users = split(/\s+/, $in{"user"});
12 if ($in{"access"}) {
13         foreach $u (@users) {
14                 if ($u =~ /^\@(\S+)$/) {
15                         defined(getgrnam($1)) ||
16                                 &error(&text('users_egroup', "$1"));
17                         }
18                 elsif ($u =~ /^(\d*)-(\d*)$/ && ($1 || $2)) {
19                         # Assume UIDs are ok
20                         }
21                 else {
22                         defined(getpwnam($u)) ||
23                                 &error(&text('users_euser', $u));
24                         }
25                 }
26         }
27 if ($in{'shells_deny'}) {
28         -r $in{'shells'} || &error($text{'users_eshell'});
29         }
30
31 &lock_file($usermin_miniserv_config);
32 &get_usermin_miniserv_config(\%miniserv);
33 delete($miniserv{"allowusers"});
34 delete($miniserv{"denyusers"});
35 if ($in{"access"} == 1) { $miniserv{"allowusers"} = join(' ', @users); }
36 elsif ($in{"access"} == 2) { $miniserv{"denyusers"} = join(' ', @users); }
37 if ($in{'shells_deny'}) {
38         $miniserv{'shells_deny'} = $in{'shells'};
39         }
40 else {
41         delete($miniserv{'shells_deny'});
42         }
43 &put_usermin_miniserv_config(\%miniserv);
44 &unlock_file($usermin_miniserv_config);
45 &restart_usermin_miniserv();
46 &webmin_log("users", undef, undef, \%in);
47 &redirect("");
48