From 98abbe8436d111e3f4f928d073e60ff3d72a94b7 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Sun, 12 Aug 2018 13:39:27 +0100
Subject: [PATCH] Changing password on apps

---
 src/freedombone-chpasswd  | 79 +++++++++++++++++++++++++++++++++++++++
 src/freedombone-installer |  5 ++-
 2 files changed, 83 insertions(+), 1 deletion(-)
 create mode 100755 src/freedombone-chpasswd

diff --git a/src/freedombone-chpasswd b/src/freedombone-chpasswd
new file mode 100755
index 000000000..e7041439e
--- /dev/null
+++ b/src/freedombone-chpasswd
@@ -0,0 +1,79 @@
+#!/bin/bash
+#  _____               _           _
+# |   __|___ ___ ___ _| |___ _____| |_ ___ ___ ___
+# |   __|  _| -_| -_| . | . |     | . | . |   | -_|
+# |__|  |_| |___|___|___|___|_|_|_|___|___|_|_|___|
+#
+#                              Freedom in the Cloud
+#
+# Changes the passowrd within apps for a given user
+#
+# License
+# =======
+#
+# Copyright (C) 2015-2018 Bob Mottram <bob@freedombone.net>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+PROJECT_NAME='freedombone'
+
+export TEXTDOMAIN=${PROJECT_NAME}-chpasswd
+export TEXTDOMAINDIR="/usr/share/locale"
+
+# Start including files
+
+source /usr/local/bin/${PROJECT_NAME}-vars
+
+UTILS_FILES="/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*"
+for f in $UTILS_FILES
+do
+    source "$f"
+done
+
+APP_FILES="/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*"
+for f in $APP_FILES
+do
+    source "$f"
+done
+
+# End including files
+
+USERNAME="$1"
+NEW_PASSWORD="$2"
+
+if [ ! "$USERNAME" ]; then
+    exit 638535
+fi
+if [ ! -d "/home/$USERNAME" ]; then
+    echo $"User $USERNAME not found"
+    exit 548356
+fi
+if [ ! "$NEW_PASSWORD" ]; then
+    echo $"No password was given for ${PROJECT_NAME}-chpasswd"
+    exit 564785
+fi
+
+detect_installable_apps
+
+app_index=0
+# shellcheck disable=SC2068
+for app_name in ${APPS_INSTALLED[@]}
+do
+    if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
+        "change_password_${app_name}" "$USERNAME" "$NEW_PASSWORD"
+    fi
+    app_index=$((app_index+1))
+done
+
+exit 0
diff --git a/src/freedombone-installer b/src/freedombone-installer
index f1d79421e..6227e8083 100755
--- a/src/freedombone-installer
+++ b/src/freedombone-installer
@@ -1164,7 +1164,10 @@ function webadmin_change_password {
                     # change the login for the user
                     echo "${curr_username}:${new_password}"|chpasswd
 
-                    # TODO change passwords for each app
+                    # change passwords for each installed app
+                    /usr/local/bin/${PROJECT_NAME}-chpasswd "$curr_username" "$new_password"
+
+                    new_password=
                 fi
             fi
         fi
-- 
GitLab