diff --git a/src/freedombone-chpasswd b/src/freedombone-chpasswd new file mode 100755 index 0000000000000000000000000000000000000000..e7041439e0357ec057acde7a5494e096aadd6f20 --- /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 f1d79421ecba7eee65974a134e8101be45423d96..6227e808362aefc76a8a2bdce335e24c06d19753 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