From cae3a6de60287c1737300d10bec63b034c916605 Mon Sep 17 00:00:00 2001
From: s3lph <account-gitlab-ideynizv@kernelpanic.lol>
Date: Wed, 3 Nov 2021 00:33:01 +0100
Subject: [PATCH] postfixadmin: make setup password hash idempotent

---
 roles/postfixadmin/templates/config.local.php.j2 | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/roles/postfixadmin/templates/config.local.php.j2 b/roles/postfixadmin/templates/config.local.php.j2
index 8545b88..524dff2 100644
--- a/roles/postfixadmin/templates/config.local.php.j2
+++ b/roles/postfixadmin/templates/config.local.php.j2
@@ -1,10 +1,13 @@
 <?php
 
 {{ ansible_managed | comment(decoration='// ') }}
-{% set _salt = inventory_hostname | hash("sha512") | regex_replace("^(.{22}).*$", "\1") %}
 
 $CONF['configured'] = true;
-$CONF['setup_password'] = '{{ postfixadmin_setup_password | password_hash("bcrypt", _salt) }}';
+{% if postfixadmin_setup_password_salt is defined %}
+$CONF['setup_password'] = '{{ postfixadmin_setup_password | password_hash("bcrypt", postfixadmin_setup_password_salt) }}';
+{% else %}
+$CONF['setup_password'] = '{{ postfixadmin_setup_password | password_hash("bcrypt") }}';
+{% endif %}
 
 $CONF['default_language'] = '{{ postfixadmin_default_language }}';