mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2025-04-04 00:17:06 +00:00
Set miab_ldap.conf variables only if they don't already exist so that the file may be pre-populated
This commit is contained in:
parent
d2f418a363
commit
8f2e4d1247
@ -71,42 +71,46 @@ wait_slapd_start() {
|
|||||||
say_verbose "...ok"
|
say_verbose "...ok"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_add_if_missing() {
|
||||||
|
local var="$1"
|
||||||
|
local val="$2"
|
||||||
|
local conf="$MIAB_INTERNAL_CONF_FILE"
|
||||||
|
if [ $(grep -c "^${var}=" "$conf") -eq 0 ]; then
|
||||||
|
echo "${var}=\"${val}\"" >> "$conf"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
create_miab_conf() {
|
create_miab_conf() {
|
||||||
# create (if non-existing) or load (existing) ldap/miab_ldap.conf
|
# create (if non-existing) or load (existing) ldap/miab_ldap.conf
|
||||||
if [ ! -e "$MIAB_INTERNAL_CONF_FILE" ]; then
|
if [ ! -e "$MIAB_INTERNAL_CONF_FILE" ]; then
|
||||||
say_verbose "Generating a new $MIAB_INTERNAL_CONF_FILE"
|
say_verbose "Generating a new $MIAB_INTERNAL_CONF_FILE"
|
||||||
mkdir -p "$(dirname $MIAB_INTERNAL_CONF_FILE)"
|
mkdir -p "$(dirname $MIAB_INTERNAL_CONF_FILE)"
|
||||||
|
touch "$MIAB_INTERNAL_CONF_FILE"
|
||||||
# Use 64-character secret keys of safe characters
|
|
||||||
cat > "$MIAB_INTERNAL_CONF_FILE" <<EOF
|
|
||||||
LDAP_SERVER=127.0.0.1
|
|
||||||
LDAP_SERVER_PORT=389
|
|
||||||
LDAP_SERVER_STARTTLS=no
|
|
||||||
LDAP_SERVER_TLS=no
|
|
||||||
LDAP_URL=ldap://127.0.0.1/
|
|
||||||
LDAP_BASE="${LDAP_BASE}"
|
|
||||||
LDAP_SERVICES_BASE="${LDAP_SERVICES_BASE}"
|
|
||||||
LDAP_CONFIG_BASE="${LDAP_CONFIG_BASE}"
|
|
||||||
LDAP_DOMAINS_BASE="${LDAP_DOMAINS_BASE}"
|
|
||||||
LDAP_PERMITTED_SENDERS_BASE="${LDAP_PERMITTED_SENDERS_BASE}"
|
|
||||||
LDAP_USERS_BASE="${LDAP_USERS_BASE}"
|
|
||||||
LDAP_ALIASES_BASE="${LDAP_ALIASES_BASE}"
|
|
||||||
LDAP_ADMIN_DN="${LDAP_ADMIN_DN}"
|
|
||||||
LDAP_ADMIN_PASSWORD="$(generate_password 64)"
|
|
||||||
EOF
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ensure all required values exist, and if not set to default values
|
||||||
|
_add_if_missing LDAP_SERVER 127.0.0.1
|
||||||
|
_add_if_missing LDAP_SERVER_PORT 389
|
||||||
|
_add_if_missing LDAP_SERVER_STARTTLS no
|
||||||
|
_add_if_missing LDAP_SERVER_TLS no
|
||||||
|
_add_if_missing LDAP_URL ldap://127.0.0.1/
|
||||||
|
_add_if_missing LDAP_BASE "${LDAP_BASE}"
|
||||||
|
_add_if_missing LDAP_SERVICES_BASE "${LDAP_SERVICES_BASE}"
|
||||||
|
_add_if_missing LDAP_CONFIG_BASE "${LDAP_CONFIG_BASE}"
|
||||||
|
_add_if_missing LDAP_DOMAINS_BASE "${LDAP_DOMAINS_BASE}"
|
||||||
|
_add_if_missing LDAP_PERMITTED_SENDERS_BASE "${LDAP_PERMITTED_SENDERS_BASE}"
|
||||||
|
_add_if_missing LDAP_USERS_BASE "${LDAP_USERS_BASE}"
|
||||||
|
_add_if_missing LDAP_ALIASES_BASE "${LDAP_ALIASES_BASE}"
|
||||||
|
_add_if_missing LDAP_ADMIN_DN "${LDAP_ADMIN_DN}"
|
||||||
|
_add_if_missing LDAP_ADMIN_PASSWORD "$(generate_password 64)"
|
||||||
|
|
||||||
# add service account credentials
|
# add service account credentials
|
||||||
local prefix
|
local prefix
|
||||||
for prefix in ${SERVICE_ACCOUNTS[*]}
|
for prefix in ${SERVICE_ACCOUNTS[*]}
|
||||||
do
|
do
|
||||||
if [ $(grep -c "^$prefix" "$MIAB_INTERNAL_CONF_FILE") -eq 0 ]; then
|
local cn=$(awk -F_ '{print tolower($2)}' <<< $prefix)
|
||||||
local cn=$(awk -F_ '{print tolower($2)}' <<< $prefix)
|
_add_if_missing "${prefix}_DN" "cn=$cn,$LDAP_SERVICES_BASE"
|
||||||
cat >>"$MIAB_INTERNAL_CONF_FILE" <<EOF
|
_add_if_missing "${prefix}_PASSWORD" "$(generate_password 64)"
|
||||||
${prefix}_DN="cn=$cn,$LDAP_SERVICES_BASE"
|
|
||||||
${prefix}_PASSWORD="$(generate_password 64)"
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
chmod 0640 "$MIAB_INTERNAL_CONF_FILE"
|
chmod 0640 "$MIAB_INTERNAL_CONF_FILE"
|
||||||
|
Loading…
Reference in New Issue
Block a user