From d64d747e03263090c07f8d52f771210b96fa77cc Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Wed, 23 Dec 2015 13:39:00 +0000
Subject: [PATCH] Changing user passwords

---
 src/freedombone-controlpanel | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel
index 36a3a6a0c..36d918562 100755
--- a/src/freedombone-controlpanel
+++ b/src/freedombone-controlpanel
@@ -40,6 +40,9 @@ ADMIN_USER=
 UPGRADE_SCRIPT_NAME="${PROJECT_NAME}-upgrade"
 UPDATE_DATE_SCRIPT=/usr/bin/updatedate
 
+# Minimum number of characters in a password
+MINIMUM_PASSWORD_LENGTH=8
+
 USB_DRIVE=sdb
 # get default USB from config file
 CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
@@ -196,12 +199,20 @@ function change_password {
     if [ ! $SELECTED_USERNAME ]; then
         return
     fi
-    clear
-    echo -n $"Change password for"
-    echo " $SELECTED_USERNAME"
-    echo ""
-    su -c "passwd" - $SELECTED_USERNAME
-    any_key
+
+    dialog --title $"Change password" \
+           --passwordbox $"New password for user $SELECTED_USERNAME" 8 40 2> $data
+    newpassword=$(<$data)
+    if [ ${#newpassword} -lt ${MINIMUM_PASSWORD_LENGTH} ]; then
+        dialog --title $"Change password" \
+               --msgbox $"The password should be ${MINIMUM_PASSWORD_LENGTH} or more characters" 6 40
+        return
+    fi
+
+    echo "$SELECTED_USERNAME:$newpassword"|chpasswd
+
+    dialog --title $"Change password" \
+           --msgbox $"Password for $SELECTED_USERNAME was changed" 6 40
 }
 
 function irc_set_global_password {
-- 
GitLab