4 # useradmin_create_user(&details)
5 # Create a new empty mail file
6 sub useradmin_create_user
8 if ($config{'sync_create'}) {
9 local ($dir, $style, $mailbox, $maildir) = &get_mail_style();
10 if ($dir && -d $dir) {
11 # Create mail file like /var/mail/USERNAME
12 local $mf = &mail_file_style($_[0]->{'user'}, $dir, $style);
14 &create_mail_file($_[0], $mf);
17 if ($mailbox && !-e "$_[0]->{'home'}/$mailbox") {
18 # Create mail file ~USERNAME/Mailbox
19 &create_mail_file($_[0], "$_[0]->{'home'}/$mailbox");
21 if ($maildir && !-e "$_[0]->{'home'}/$maildir") {
22 # Create mail directory like ~USERNAME/Maildir
23 &create_mail_dir($_[0], "$_[0]->{'home'}/$maildir");
28 # create_mail_file(&user, file)
31 open(TOUCH, ">$_[1]");
33 if ($config{'sync_perms'}) {
35 quotemeta($config{'sync_perms'})." ".
38 chown($_[0]->{'uid'}, $_[0]->{'gid'}, $_[1]);
41 # create_mail_dir(&user, dir)
45 foreach $d ($_[1], "$_[0]/cur", "$_[1]/tmp", "$_[1]/new") {
47 if ($config{'sync_perms'}) {
49 quotemeta($config{'sync_perms'})." ".
52 chown($_[0]->{'uid'}, $_[0]->{'gid'}, $d);
58 # useradmin_delete_user(&details)
59 # Delete the user's mail file
60 sub useradmin_delete_user
62 if ($config{'sync_delete'}) {
63 local ($dir, $style, $mailbox, $maildir) = &get_mail_style();
64 if ($dir && -d $dir) {
65 local $mf = &mail_file_style($_[0]->{'user'}, $dir, $style);
69 &delete_user_index_files($_[0]->{'user'});
73 # useradmin_modify_user(&details, &old)
74 # Rename the user's mail file if necessary, and change it's UID
75 sub useradmin_modify_user
77 if ($config{'sync_modify'} &&
78 ($_[0]->{'user'} ne $_[1]->{'user'} || $_[0]->{'uid'} != $_[1]->{'uid'})) {
79 local ($dir, $style, $mailbox, $maildir) = &get_mail_style();
80 if ($dir && -d $dir) {
81 local $omf = &mail_file_style($_[0]->{'olduser'}, $dir, $style);
82 local $nmf = &mail_file_style($_[0]->{'user'}, $dir, $style);
83 local @st = stat($omf);
84 if ($st[4] != $_[0]->{'uid'}) {
85 chown($_[0]->{'uid'}, $st[5], $omf);
87 if ($omf ne $nmf && -e $omf) {
88 &rename_logged($omf, $nmf);