Handle hostnames with upper-case letters
[webmin.git] / htaccess-htpasswd / useradmin_update.pl
1
2 do 'htaccess-lib.pl';
3
4 sub useradmin_create_user
5 {
6 foreach $dir (&list_directories()) {
7         next if ($dir->[3] !~ /create/);
8         local $users = &list_users($dir->[1]);
9         local ($clash) = grep { $_->{'user'} eq $_[0]->{'user'} } @$users;
10         return if ($clash);
11         &lock_file($dir->[1]);
12         local $user = { 'user' => $_[0]->{'user'},
13                         'enabled' => 1 };
14         if ($_[0]->{'passmode'} == 0) {
15                 $user->{'pass'} = "";
16                 }
17         elsif ($_[0]->{'passmode'} == 1) {
18                 $user->{'pass'} = "*LK*";
19                 }
20         elsif ($_[0]->{'passmode'} == 2) {
21                 $user->{'pass'} = $_[0]->{'pass'};
22                 }
23         else {
24                 $user->{'pass'} = &encrypt_password($_[0]->{'plainpass'},
25                                                     undef, $config{'md5'});
26                 }
27         &create_user($user, $dir->[1]);
28         &unlock_file($dir->[1]);
29         }
30 }
31
32 sub useradmin_modify_user
33 {
34 foreach $dir (&list_directories()) {
35         next if ($dir->[3] !~ /update/);
36         local $users = &list_users($dir->[1]);
37         local ($user) = grep { $_->{'user'} eq $_[0]->{'olduser'} } @$users;
38         return if (!$user);
39         &lock_file($dir->[1]);
40         $user->{'user'} = $_[0]->{'user'};
41         if ($_[0]->{'passmode'} == 0) {
42                 $user->{'pass'} = "";
43                 }
44         elsif ($_[0]->{'passmode'} == 1) {
45                 $user->{'pass'} = "*LK*";
46                 }
47         elsif ($_[0]->{'passmode'} == 2) {
48                 $user->{'pass'} = $_[0]->{'pass'};
49                 }
50         elsif ($_[0]->{'passmode'} == 3) {
51                 $user->{'pass'} = &encrypt_password($_[0]->{'plainpass'},
52                                                     undef, $config{'md5'});
53                 }
54         &modify_user($user);
55         &unlock_file($dir->[1]);
56         }
57 }
58
59 sub useradmin_delete_user
60 {
61 foreach $dir (&list_directories()) {
62         next if ($dir->[3] !~ /update/);
63         local $users = &list_users($dir->[1]);
64         local ($user) = grep { $_->{'user'} eq $_[0]->{'user'} } @$users;
65         return if (!$user);
66         &lock_file($dir->[1]);
67         &delete_user($user);
68         &unlock_file($dir->[1]);
69         }
70 }
71