diff options
author | Michael Vetter <jubalh@iodoru.org> | 2021-03-11 18:18:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-11 18:18:03 +0100 |
commit | a7ecda7773d037fbde7da68c70be2c48497366e1 (patch) | |
tree | 4dc832c5f388154754fdbe90894f689e7a6ac97f /src/command/cmd_funcs.c | |
parent | 7d6f01df86631684fe80a3e73ece699cf061498b (diff) | |
parent | b0aea2bcffc760fb4a2041ed0ab20bac40278289 (diff) | |
download | profani-tty-a7ecda7773d037fbde7da68c70be2c48497366e1.tar.gz |
Merge pull request #1501 from xenrox/change-password
Add command to change password of logged in user
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r-- | src/command/cmd_funcs.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 55965690..77422dc6 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -438,7 +438,7 @@ cmd_connect(ProfWin* window, const char* const command, gchar** args) // no account password setting, prompt } else { - account->password = ui_ask_password(); + account->password = ui_ask_password(false); conn_status = cl_ev_connect_account(account); free(account->password); account->password = NULL; @@ -450,7 +450,7 @@ cmd_connect(ProfWin* window, const char* const command, gchar** args) // connect with JID } else { jid = g_utf8_strdown(user, -1); - char* passwd = ui_ask_password(); + char* passwd = ui_ask_password(false); conn_status = cl_ev_connect_jid(jid, passwd, altdomain, port, tls_policy, auth_policy); free(passwd); } @@ -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; +} |