From 236ad91a63f17aca86d3e95f3e12db6b593e6073 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Fri, 23 Sep 2016 18:05:41 +0200
Subject: [PATCH] roles/quassel: Fixes to work with a password-protected DB

---
 roles/quassel/files/clean-quassel.service |  9 ++++-----
 roles/quassel/files/givemequassel         | 11 +++++------
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/roles/quassel/files/clean-quassel.service b/roles/quassel/files/clean-quassel.service
index 4e487c5b2..194355f65 100644
--- a/roles/quassel/files/clean-quassel.service
+++ b/roles/quassel/files/clean-quassel.service
@@ -4,9 +4,8 @@ Requisite=postgresql.service
 After=postgresql.service
 
 [Service]
-User=quassel
-Group=quassel
+User=postgres
 Type=oneshot
-ExecStart=/usr/bin/psql -c "DELETE FROM backlog WHERE time < NOW() - INTERVAL '1 months';"
-ExecStart=/usr/bin/psql -c "CLUSTER backlog USING backlog_bufferid_idx;"
-ExecStart=/usr/bin/psql -c "VACUUM FULL ANALYZE backlog;"
+ExecStart=/usr/bin/psql -d quassel -c "DELETE FROM backlog WHERE time < NOW() - INTERVAL '1 months';"
+ExecStart=/usr/bin/psql -d quassel -c "CLUSTER backlog USING backlog_bufferid_idx;"
+ExecStart=/usr/bin/psql -d quassel -c "VACUUM FULL ANALYZE backlog;"
diff --git a/roles/quassel/files/givemequassel b/roles/quassel/files/givemequassel
index d0f8095c0..7a7c8eeeb 100755
--- a/roles/quassel/files/givemequassel
+++ b/roles/quassel/files/givemequassel
@@ -40,17 +40,16 @@ if [[ $pw != $REPLY ]]; then
   echo >&2 "Passwords don't match."
   exit 1
 fi
-sha1=(`printf %s "$pw" | sha1sum`)
 
-if psql -c "INSERT INTO quasseluser (username, password) VALUES ('$SUDO_USER', '${sha1[0]}')" &>/dev/null; then
-  echo >&2 "Added user '$SUDO_USER'."
+if printf '%s\n' $pw $pw | quasselcore --configdir=/var/lib/quassel --change-userpass $SUDO_USER &>/dev/null; then
+  echo >&2 "Updated password for user '$SUDO_USER'."
   exit 0
 fi
 
-if psql -c "UPDATE quasseluser SET password = '${sha1[0]}' WHERE username = '$SUDO_USER'" &>/dev/null; then
-  echo >&2 "Updated password for user '$SUDO_USER'."
+if printf '%s\n' $SUDO_USER $pw $pw | quasselcore --configdir=/var/lib/quassel --add-user &>/dev/null; then
+  echo >&2 "Added user '$SUDO_USER'."
   exit 0
 fi
 
-echo >&2 "SQL error."
+echo >&2 "Quassel error."
 exit 1
-- 
GitLab