about summary refs log tree commit diff stats
path: root/src/command/cmd_funcs.c
diff options
context:
space:
mode:
authorThorben Günther <admin@xenrox.net>2021-03-11 13:56:06 +0100
committerThorben Günther <admin@xenrox.net>2021-03-11 17:42:53 +0100
commitb0aea2bcffc760fb4a2041ed0ab20bac40278289 (patch)
tree638827f80d58452d0c15dddaf408aad6bee00cb4 /src/command/cmd_funcs.c
parent71236a0d5a47277d55caa5a09befa97ccabe7fec (diff)
downloadprofani-tty-b0aea2bcffc760fb4a2041ed0ab20bac40278289.tar.gz
Add command to change password of logged in user
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r--src/command/cmd_funcs.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index 60b7010b..77422dc6 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -9298,3 +9298,30 @@ cmd_mam(ProfWin* window, const char* const command, gchar** args)
 
     return TRUE;
 }
+
+gboolean
+cmd_change_password(ProfWin* window, const char* const command, gchar** args)
+{
+    jabber_conn_status_t conn_status = connection_get_status();
+
+    if (conn_status != JABBER_CONNECTED) {
+        cons_show("You are not currently connected.");
+        return TRUE;
+    }
+
+    char* user = connection_get_user();
+    char* passwd = ui_ask_password(false);
+    char* confirm_passwd = ui_ask_password(true);
+
+    if (g_strcmp0(passwd, confirm_passwd) == 0) {
+        iq_register_change_password(user, passwd);
+    } else {
+        cons_show("Aborted! The new password and the confirmed password do not match.");
+    }
+
+    free(user);
+    free(passwd);
+    free(confirm_passwd);
+
+    return TRUE;
+}