Handle hostnames with upper-case letters
[webmin.git] / pap / useradmin_update.pl
1
2 do 'pap-lib.pl';
3
4 # useradmin_create_user(&details)
5 # Add a PAP user if syncing is enabled
6 sub useradmin_create_user
7 {
8 return if (!$config{'sync_add'});
9 @sec = &list_secrets();
10 foreach $s (@sec) {
11         return if ($s->{'client'} eq $_[0]->{'user'});
12         }
13 $sec{'client'} = $_[0]->{'user'};
14 $sec{'server'} = $config{'sync_server'} ? $config{'sync_server'} : "*";
15 &compute_password($_[0], \%sec);
16 $sec{'ips'} = [ ];
17 &create_secret(\%sec);
18 }
19
20 # useradmin_delete_user(&details)
21 # Delete this pap user if syncing
22 sub useradmin_delete_user
23 {
24 return if (!$config{'sync_delete'});
25 @sec = &list_secrets();
26 for($i=0; $i<@sec; $i++) {
27         if ($sec[$i]->{'client'} eq $_[0]->{'user'}) {
28                 &delete_secret($sec[$i]);
29                 return;
30                 }
31         }
32 }
33
34 # useradmin_modify_user(&details)
35 # Update this user if in sync
36 sub useradmin_modify_user
37 {
38 return if (!$config{'sync_change'});
39 @sec = &list_secrets();
40 for($i=0; $i<@sec; $i++) {
41         if ($sec[$i]->{'client'} eq $_[0]->{'olduser'}) {
42                 $sec[$i]->{'client'} = $_[0]->{'user'};
43                 &compute_password($_[0], $sec[$i]);
44                 &change_secret($sec[$i]);
45                 return;
46                 }
47         }
48 }
49
50 # compute_password(&user, &secret)
51 sub compute_password
52 {
53 if ($_[0]->{'passmode'} == 0) {
54         $_[1]->{'secret'} = &opt_crypt("");
55         }
56 elsif ($_[0]->{'passmode'} == 1) {
57         $_[1]->{'secret'} = "*LK*";
58         }
59 elsif ($_[0]->{'passmode'} == 2) {
60         $_[1]->{'secret'} = $_[0]->{'pass'} if ($config{'encrypt_pass'});
61         }
62 elsif ($_[0]->{'passmode'} == 3) {
63         $_[1]->{'secret'} = &opt_crypt($_[0]->{'plainpass'});
64         }
65 }
66
67 1;
68