Use variables for mysql queries

This commit is contained in:
Antonio J. Delgado 2022-10-14 09:37:05 +03:00
parent 93794038da
commit bca889eed9
8 changed files with 17 additions and 13 deletions

View file

@ -5,6 +5,10 @@ mail_db_password: "{{ vault_mail_admin_password }}"
mail_db_name: 'mail' mail_db_name: 'mail'
admin_password: "{{ mail_admin_password }}" admin_password: "{{ mail_admin_password }}"
mail_admin_username: 'mail_admin' mail_admin_username: 'mail_admin'
mail_db_users_table_name: 'users'
mail_db_users_password_field: 'password'
mail_db_users_username_field: 'email'
mail_db_users_quota_field: 'quota'
dns_resolver: 1.1.1.1 dns_resolver: 1.1.1.1
mail_domains: mail_domains:
- example.org - example.org

View file

@ -3,15 +3,15 @@ MYSQL_USERNAME {{ mail_db_user}}
MYSQL_PASSWORD {{ mail_db_password }} MYSQL_PASSWORD {{ mail_db_password }}
MYSQL_PORT 0 MYSQL_PORT 0
MYSQL_DATABASE {{ mail_db_name }} MYSQL_DATABASE {{ mail_db_name }}
MYSQL_USER_TABLE users MYSQL_USER_TABLE {{ mail_db_users_table_name }}
MYSQL_CRYPT_PWFIELD password MYSQL_CRYPT_PWFIELD {{ mail_db_users_password_field }}
#MYSQL_CLEAR_PWFIELD password #MYSQL_CLEAR_PWFIELD {{ mail_db_users_password_field }}
MYSQL_UID_FIELD 5000 MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000 MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email MYSQL_LOGIN_FIELD {{ mail_db_users_username_field }}
MYSQL_HOME_FIELD "/home/vmail" MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX({{ mail_db_users_username_field }},'@',-1),'/',SUBSTRING_INDEX({{ mail_db_users_username_field }},'@',1),'/')
#MYSQL_NAME_FIELD #MYSQL_NAME_FIELD
MYSQL_QUOTA_FIELD quota MYSQL_QUOTA_FIELD {{ mail_db_users_quota_field }}
MYSQL_OPT 0 MYSQL_OPT 0
##NAME: MARKER:0 # # Do not remove this section from this configuration file. This section # must be present at the end of this file. ##NAME: MARKER:0 # # Do not remove this section from this configuration file. This section # must be present at the end of this file.

View file

@ -1,5 +1,5 @@
user = {{ mail_db_user}} user = {{ mail_db_user}}
password = {{ mail_db_password }} password = {{ mail_db_password }}
dbname = {{ mail_db_name }} dbname = {{ mail_db_name }}
query = SELECT domain AS virtuald FROM domains WHERE domain='%s' query = SELECT SUBSTRING_INDEX({{ mail_db_users_username_field }},'@',-1) AS virtuald FROM dbmail_aliases WHERE alias like '%%%s'
hosts = 127.0.0.1 hosts = 127.0.0.1

View file

@ -1,5 +1,5 @@
user = {{ mail_db_user}} user = {{ mail_db_user}}
password = {{ mail_db_password }} password = {{ mail_db_password }}
dbname = {{ mail_db_name }} dbname = {{ mail_db_name }}
query = SELECT email FROM users WHERE email='%s' query = SELECT {{ mail_db_users_username_field }} FROM {{ mail_db_users_table_name }} WHERE {{ mail_db_users_username_field }}='%s'
hosts = 127.0.0.1 hosts = 127.0.0.1

View file

@ -1,5 +1,5 @@
user = {{ mail_db_user}} user = {{ mail_db_user}}
password = {{ mail_db_password }} password = {{ mail_db_password }}
dbname = {{ mail_db_name }} dbname = {{ mail_db_name }}
query = SELECT quota FROM users WHERE email='%s' query = SELECT {{ mail_db_users_quota_field }} FROM {{ mail_db_users_table_name }} WHERE {{ mail_db_users_username_field }}='%s'
hosts = 127.0.0.1 hosts = 127.0.0.1

View file

@ -1,5 +1,5 @@
user = {{ mail_db_user}} user = {{ mail_db_user}}
password = {{ mail_db_password }} password = {{ mail_db_password }}
dbname = {{ mail_db_name }} dbname = {{ mail_db_name }}
query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' query = SELECT CONCAT(SUBSTRING_INDEX({{ mail_db_users_username_field }},'@',-1),'/',SUBSTRING_INDEX({{ mail_db_users_username_field }},'@',1),'/') FROM {{ mail_db_users_table_name }} WHERE {{ mail_db_users_username_field }}='%s'
hosts = 127.0.0.1 hosts = 127.0.0.1

View file

@ -1,2 +1,2 @@
auth required pam_mysql.so user={{ mail_db_user}} passwd={{ mail_db_password }} host=127.0.0.1 db={{ mail_db_name }} table=users usercolumn=email passwdcolumn=password crypt=1 auth required pam_mysql.so user={{ mail_db_user}} passwd={{ mail_db_password }} host=127.0.0.1 db={{ mail_db_name }} table={{ mail_db_users_table_name }} usercolumn={{ mail_db_users_username_field }} passwdcolumn={{ mail_db_users_password_field }} crypt=1
account sufficient pam_mysql.so user={{ mail_db_user}} passwd={{ mail_db_password }} host=127.0.0.1 db={{ mail_db_name }} table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user={{ mail_db_user}} passwd={{ mail_db_password }} host=127.0.0.1 db={{ mail_db_name }} table={{ mail_db_users_table_name }} usercolumn={{ mail_db_users_username_field }} passwdcolumn={{ mail_db_users_password_field }} crypt=1

View file

@ -7,5 +7,5 @@ sql_hostnames: 127.0.0.1
sql_user: {{ mail_db_user}} sql_user: {{ mail_db_user}}
sql_passwd: {{ mail_db_password }} sql_passwd: {{ mail_db_password }}
sql_database: {{ mail_db_name }} sql_database: {{ mail_db_name }}
sql_select: select password from users where email = '%u@%r' sql_select: select {{ mail_db_users_password_field}} from {{ mail_db_users_table_name }} where {{ mail_db_users_username_field }} = '%u@%r'
log_level: 9 log_level: 9