2 tool
=$
(readlink
-e "${0%/*}/..")
7 # DESCRIPTION: outil de suppression de compte dovecot
9 IFS
=@
read -r user domain
<<-EOF
13 test "${domain:+set"}"
17 dir_virtual_alias
=/etc
/mail
/dovecot
18 old_virtual_alias
="$dir_virtual_alias"/virtual_alias
19 virtual_alias_entry
="$user@$domain $user@dovecot.$domain"
20 virtual_alias
=$
(sudo
cat "$old_virtual_alias" || true
)
21 if grep -Fqx "$virtual_alias_entry" <<-EOF
25 new_virtual_alias
=$
(sudo TMPDIR
= mktemp
--tmpdir="$dir_virtual_alias" -t "virtual_alias.XXXXXXXX.tmp")
26 grep -Fvx "$virtual_alias_entry" <<-EOF |
29 sudo
install -o root
-g postfix
-m 640 /dev
/stdin \
31 sudo
mv -f "$new_virtual_alias" "$old_virtual_alias"
32 sudo postmap
hash:/etc
/mail
/dovecot
/virtual_alias
36 if test "${purge:+set}"
38 if sudo doveadm user
"$user@$domain"
40 sudo doveadm mailbox list
-u "$user@$domain" |
41 while IFS
= read -r mailbox
42 do sudo doveadm acl get
-u "$user@$domain" "$mailbox" |
43 while IFS
=' ' read -r acl_id x
44 do sudo doveadm acl delete
-u "$user@$domain" "$mailbox" "$acl_id"
50 dir_passwd
=/etc
/dovecot
/"$domain"
51 old_passwd
="$dir_passwd"/passwd
52 new_passwd
=$
(sudo TMPDIR
= mktemp
--tmpdir="$dir_passwd" -t "passwd.XXXXXXXX.tmp")
53 if sudo
test -e "$old_passwd"
55 while IFS
=: read <&4 -r \
59 case "$passwd_user" in
63 $passwd_user${passwd_x:+:$passwd_x}
67 done 4<<-EOF 3>&1 >&2 |
68 $(sudo cat "$old_passwd")
70 sudo
install -o php5_roundcube
-g php5_roundcube
-m 0640 /dev
/stdin
"$new_passwd"
71 sudo
mv -f "$new_passwd" "$old_passwd"
74 domain_group
=mail-
"$(printf '%s' "$domain" | sed -e 's/[^0-9a-z-]/_/g')"
75 if test -z "$({ getent group "$domain_group" || printf ":::x
"; } | cut -d: -f4)"
77 if test "$domain" = "$local_domainname" &&
80 sudo deluser
"$user" "$domain_group"
82 sudo delgroup
"$domain_group"
85 if test "${purge:+set}"
88 ~mail
/data
/"$domain"/"$user" \
89 /var
/lib
/dovecot-control
/"$domain"/"$user" \
90 /var
/lib
/dovecot-index
/"$domain"/"$user"
92 if sudo
test -e "$dir"
94 sudo
find "$dir" -type f
-exec \
95 shred --force --iterations=1 --remove {} +
101 if test "${purge:+set}"
103 sudo
-u php5_roundcube psql
-1AqtX --set ON_ERROR_STOP
=1 -U roundcube roundcube
<<-EOF
104 DO LANGUAGE plpgsql \$\$
107 SELECT user_id INTO uid
109 WHERE username = '$user@$domain';
114 FROM contactgroupmembers
115 WHERE contactgroup_id
116 IN (SELECT contactgroup_id
118 WHERE user_id = uid);