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