Handle hostnames with upper-case letters
[webmin.git] / mon / save_user.cgi
1 #!/usr/local/bin/perl
2 # save_user.cgi
3 # Save, create or delete a MON user
4
5 require './mon-lib.pl';
6 &ReadParse();
7 &error_setup($text{'user_err'});
8 @users = &list_users();
9 $user = $users[$in{'index'}] if ($in{'index'} ne '');
10
11 if ($in{'delete'}) {
12         # Just delete the user
13         &delete_user($user);
14         }
15 else {
16         # Validate inputs
17         $in{'user'} =~ /^[^:\s]+$/ || &error($text{'user_euser'});
18         if ($in{'new'} || $in{'user'} ne $user->{'user'}) {
19                 local ($same) = grep { $_->{'user'} eq $in{'user'} } @users;
20                 $same && &error($text{'user_esame'});
21                 }
22
23         # Create or update the user
24         $salt = substr(time(), -2);
25         $user->{'user'} = $in{'user'};
26         if (!$in{'pass_def'}) {
27                 $user->{'pass'} = &unix_crypt($in{'pass'}, $salt);
28                 }
29         if ($in{'new'}) {
30                 &create_user($user);
31                 }
32         else {
33                 &modify_user($user);
34                 }
35         }
36
37 &redirect("list_users.cgi");
38