5 %mail_sync = map { $_, 1 } split(/,/, $config{'mail_sync'});
7 # useradmin_create_user(&details)
8 sub useradmin_create_user
10 local $dir = $config{'mail_dir'};
11 if ($dir && -d $dir && $mail_sync{'create'}) {
12 local $mf = "$dir/$_[0]->{'user'}";
16 chown($_[0]->{'uid'}, $_[0]->{'gid'}, $mf);
21 # useradmin_delete_user(&details)
22 # Delete this user's mail file and remove from any aliases
23 sub useradmin_delete_user
25 local $dir = $config{'mail_dir'};
26 if ($dir && -d $dir && $mail_sync{'delete'}) {
27 unlink("$dir/$_[0]->{'user'}");
28 unlink("$dir/.$_[0]->{'user'}.pop");
30 local $conf = &get_sendmailcf();
31 local $afile = &aliases_file($conf);
32 local @aliases = &list_aliases($afile);
33 foreach $a (@aliases) {
34 return if ($a->{'name'} eq $_[0]->{'user'});
36 foreach $a (@aliases) {
37 local @nv = grep { $_ ne $_[0]->{'user'} } @{$a->{'values'}};
38 if (scalar(@nv) != scalar(@{$a->{'values'}})) {
39 $a->{'values'} = \@nv;
40 &modify_alias($a, $a);
45 # useradmin_modify_user(&details)
46 sub useradmin_modify_user
48 local $dir = $config{'mail_dir'};
49 if ($dir && -d $dir && $mail_sync{'modify'}) {
50 local $mfile = "$dir/$_[0]->{'olduser'}";
51 local @st = stat($mfile);
52 if ($st[4] != $_[0]->{'uid'}) {
53 chown($_[0]->{'uid'}, $st[5], $mfile);
55 if ($_[0]->{'olduser'} ne $_[0]->{'user'} && -r $mfile) {
56 &rename_logged($mfile, "$dir/$_[0]->{'user'}");