aboutsummaryrefslogtreecommitdiffstats
path: root/roles/mail/templates/dovecot/passdb.j2
blob: a8c4ab7b55f4f58a12f2b88e1a8fbad1051f9e8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#
# /usr/local/etc/dovecot/passdb
# Dovecot authentication database in passwd-file format.
#
# References:
# * Dovecot - PasswordDatabase
#   https://wiki.dovecot.org/PasswordDatabase
# * Dovecot - AuthDatabase / PasswdFile
#   https://wiki.dovecot.org/AuthDatabase/PasswdFile
#
#
# Aaron LI
#

# Fields
# ------
# user:password:(uid):(gid):(gecos):(home):(shell):extra_fields
# The ()-enclosed fields are ignored by Dovecot passdb lookup.
# ----------------------------------------------------------------------
{% set mydomain = mail.domains[0] %}
{% for domain in mail.domains %}
# [domain: {{ domain }}]
{% for user in mail.userdb %}
{% set name = user.name %}
{% set email = name + "@" + domain %}
{% set pass = passdb[name].pass %}
# (user: {{ name }})
{{ email }}:{{ pass }}::::::user={{ email }}
{% for dev in user.devices|default([]) %}
{% set pass = passdb[name].devices[dev] %}
{{ email }}@{{ dev }}:{{ pass }}::::::user={{ email }}
{% endfor %}{# devices #}
{% if name != "root" and user.aliases is defined %}
# aliases
{% for alias in user.aliases|default([]) %}
{% set email = alias + "@" + domain %}
{{ email }}:{{ pass }}::::::user={{ email }}
{% for dev in user.devices|default([]) %}
{% set pass = passdb[name].devices[dev] %}
{{ email }}@{{ dev }}:{{ pass }}::::::user={{ email }}
{% endfor %}{# devices #}
{% endfor %}{# alias #}
{% endif %}{# aliases #}
{% endfor %}{# user #}
{% endfor %}{# domain #}
# EOF