···
1
-
{ lib, config, pkgs, ... }:
cfg = config.services.postfixadmin;
fpm = config.services.phpfpm.pools.postfixadmin;
···
$CONF['database_type'] = 'pgsql';
$CONF['database_host'] = ${if localDB then "null" else "'${cfg.database.host}'"};
${lib.optionalString localDB "$CONF['database_user'] = '${cfg.database.username}';"}
92
-
$CONF['database_password'] = ${if localDB then "'dummy'" else "file_get_contents('${cfg.database.passwordFile}')"};
97
+
$CONF['database_password'] = ${
98
+
if localDB then "'dummy'" else "file_get_contents('${cfg.database.passwordFile}')"
$CONF['database_name'] = '${cfg.database.dbname}';
$CONF['configured'] = true;
···
services.postgresql = lib.mkIf localDB {
130
-
name = cfg.database.username;
138
+
name = cfg.database.username;
# The postgresql module doesn't currently support concepts like
# objects owners and extensions; for now we tack on what's needed
136
-
systemd.services.postfixadmin-postgres = let pgsql = config.services.postgresql; in lib.mkIf localDB {
137
-
after = [ "postgresql.service" ];
138
-
bindsTo = [ "postgresql.service" ];
139
-
wantedBy = [ "multi-user.target" ];
145
+
systemd.services.postfixadmin-postgres =
147
+
pgsql = config.services.postgresql;
150
+
after = [ "postgresql.service" ];
151
+
bindsTo = [ "postgresql.service" ];
152
+
wantedBy = [ "multi-user.target" ];
148
-
psql --port=${toString pgsql.port} "$@"
161
+
psql --port=${toString pgsql.port} "$@"
151
-
PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.database.dbname}'" | grep -q 1 || PSQL -tAc 'CREATE DATABASE "${cfg.database.dbname}" OWNER "${cfg.database.username}"'
152
-
current_owner=$(PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.database.dbname}'")
153
-
if [[ "$current_owner" != "${cfg.database.username}" ]]; then
154
-
PSQL -tAc 'ALTER DATABASE "${cfg.database.dbname}" OWNER TO "${cfg.database.username}"'
155
-
if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.database.dbname}" ]]; then
156
-
echo "Reassigning ownership of database ${cfg.database.dbname} to user ${cfg.database.username} failed on last boot. Failing..."
159
-
touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.database.dbname}"
160
-
PSQL "${cfg.database.dbname}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.database.username}\""
161
-
rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.database.dbname}"
164
+
PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.database.dbname}'" | grep -q 1 || PSQL -tAc 'CREATE DATABASE "${cfg.database.dbname}" OWNER "${cfg.database.username}"'
165
+
current_owner=$(PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.database.dbname}'")
166
+
if [[ "$current_owner" != "${cfg.database.username}" ]]; then
167
+
PSQL -tAc 'ALTER DATABASE "${cfg.database.dbname}" OWNER TO "${cfg.database.username}"'
168
+
if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.database.dbname}" ]]; then
169
+
echo "Reassigning ownership of database ${cfg.database.dbname} to user ${cfg.database.username} failed on last boot. Failing..."
172
+
touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.database.dbname}"
173
+
PSQL "${cfg.database.dbname}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.database.username}\""
174
+
rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.database.dbname}"
166
-
User = pgsql.superUser;
168
-
RemainAfterExit = true;
179
+
User = pgsql.superUser;
181
+
RemainAfterExit = true;
users.users.${user} = lib.mkIf localDB {
177
-
users.groups.${user} = lib.mkIf localDB {};
190
+
users.groups.${user} = lib.mkIf localDB { };
services.phpfpm.pools.postfixadmin = {