Mercurial > prosody-modules
changeset 3416:c6dd65354db0
mod_adhoc_account_management: Reduce indentation of one in the main function.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sun, 23 Dec 2018 18:33:32 +0100 (2018-12-23) |
parents | 6c806a99f802 |
children | 1534d0715d35 |
files | mod_adhoc_account_management/mod_adhoc_account_management.lua |
diffstat | 1 files changed, 48 insertions(+), 48 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_adhoc_account_management/mod_adhoc_account_management.lua Sun Dec 23 17:11:10 2018 +0100 +++ b/mod_adhoc_account_management/mod_adhoc_account_management.lua Sun Dec 23 18:33:32 2018 +0100 @@ -45,59 +45,59 @@ function change_password_command_handler(self, data, state) if not state then -- New session, send the form return { status = "executing", actions = { "complete" }, form = change_password_layout }, true; - else - if data.action == "cancel" then - return { status = "canceled" }; - end + end + + if data.action == "cancel" then + return { status = "canceled" }; + end - -- Who are we talking to? - local username, hostname = jid_split(data.from); - if not username or hostname ~= module.host then - return { status = "error", error = { type = "cancel", - condition = "forbidden", message = "Invalid user or hostname." } }; - end + -- Who are we talking to? + local username, hostname = jid_split(data.from); + if not username or hostname ~= module.host then + return { status = "error", error = { type = "cancel", + condition = "forbidden", message = "Invalid user or hostname." } }; + end + + -- Extract data from the form + local fields = change_password_layout:data(data.form); - -- Extract data from the form - local fields = change_password_layout:data(data.form); + -- Validate + if require_current then + if not fields["password-current"] or #fields["password-current"] == 0 then + return { status = "error", error = { type = "modify", + condition = "bad-request", message = "Please enter your current password" } }; + elseif not usermanager_test_password(username, hostname, fields["password-current"]) then + return { status = "error", error = { type = "modify", + condition = "bad-request", message = "Your current password was incorrect" } }; + end + end - -- Validate - if require_current then - if not fields["password-current"] or #fields["password-current"] == 0 then - return { status = "error", error = { type = "modify", - condition = "bad-request", message = "Please enter your current password" } }; - elseif not usermanager_test_password(username, hostname, fields["password-current"]) then - return { status = "error", error = { type = "modify", - condition = "bad-request", message = "Your current password was incorrect" } }; + if require_confirm and fields["password-confirm"] ~= fields["password"] then + return { status = "error", error = { type = "modify", + condition = "bad-request", message = "New password didn't match the confirmation" } }; + end + + if not fields.password or #fields.password == 0 then + return { status = "error", error = { type = "modify", + condition = "bad-request", message = "Please enter a new password" } }; + end + + -- All is good, so change password. + module:log("debug", "About to usermanager.set_password(%q, password, %q)", username, hostname); + local ok, err = usermanager_set_password(username, fields.password, hostname); + if ok then + if close_others then + for _, sess in pairs(hosts[hostname].sessions[username].sessions) do + if sess.full_jid ~= data.from then + sess:close{ condition = "reset", text = "Password changed" } + end end end - - if require_confirm and fields["password-confirm"] ~= fields["password"] then - return { status = "error", error = { type = "modify", - condition = "bad-request", message = "New password didn't match the confirmation" } }; - end - - if not fields.password or #fields.password == 0 then - return { status = "error", error = { type = "modify", - condition = "bad-request", message = "Please enter a new password" } }; - end - - -- All is good, so change password. - module:log("debug", "About to usermanager.set_password(%q, password, %q)", username, hostname); - local ok, err = usermanager_set_password(username, fields.password, hostname); - if ok then - if close_others then - for _, sess in pairs(hosts[hostname].sessions[username].sessions) do - if sess.full_jid ~= data.from then - sess:close{ condition = "reset", text = "Password changed" } - end - end - end - return { status = "completed", info = "Password successfully changed" }; - else - module:log("warn", "%s@%s could not change password: %s", username, hostname, tostring(err)); - return { status = "error", error = { type = "cancel", - condition = "internal-server-error", message = "Could not save new password: "..tostring(err) } }; - end + return { status = "completed", info = "Password successfully changed" }; + else + module:log("warn", "%s@%s could not change password: %s", username, hostname, tostring(err)); + return { status = "error", error = { type = "cancel", + condition = "internal-server-error", message = "Could not save new password: "..tostring(err) } }; end end