Software /
code /
prosody
Comparison
plugins/mod_admin_adhoc.lua @ 11632:21a1b9fb08a1
mod_admin_adhoc: Delete "Get User Password" command
This doesn't really make sense today. It doesn't even work with
mod_auth_internal_hashed, which should be the default. And even with a
supporting authentication module, why would we just hand out the
password? One use case may be to recover a forgotten password. While not
yet included with Prosody, there are better ways to handle forgotten
passwords, usually by resetting them to a new password.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 27 Jun 2021 21:51:21 +0200 |
parent | 10543:46b456ed12bd |
child | 11633:77e38ea34d82 |
comparison
equal
deleted
inserted
replaced
11631:6641ca266d94 | 11632:21a1b9fb08a1 |
---|---|
16 | 16 |
17 local keys = require "util.iterators".keys; | 17 local keys = require "util.iterators".keys; |
18 local usermanager_user_exists = require "core.usermanager".user_exists; | 18 local usermanager_user_exists = require "core.usermanager".user_exists; |
19 local usermanager_create_user = require "core.usermanager".create_user; | 19 local usermanager_create_user = require "core.usermanager".create_user; |
20 local usermanager_delete_user = require "core.usermanager".delete_user; | 20 local usermanager_delete_user = require "core.usermanager".delete_user; |
21 local usermanager_get_password = require "core.usermanager".get_password; | |
22 local usermanager_set_password = require "core.usermanager".set_password; | 21 local usermanager_set_password = require "core.usermanager".set_password; |
23 local hostmanager_activate = require "core.hostmanager".activate; | 22 local hostmanager_activate = require "core.hostmanager".activate; |
24 local hostmanager_deactivate = require "core.hostmanager".deactivate; | 23 local hostmanager_deactivate = require "core.hostmanager".deactivate; |
25 local rm_load_roster = require "core.rostermanager".load_roster; | 24 local rm_load_roster = require "core.rostermanager".load_roster; |
26 local st, jid = require "util.stanza", require "util.jid"; | 25 local st, jid = require "util.stanza", require "util.jid"; |
189 end | 188 end |
190 return {status = "completed", info = (#succeeded ~= 0 and | 189 return {status = "completed", info = (#succeeded ~= 0 and |
191 "The following accounts were successfully disconnected:\n"..t_concat(succeeded, "\n").."\n" or "").. | 190 "The following accounts were successfully disconnected:\n"..t_concat(succeeded, "\n").."\n" or "").. |
192 (#failed ~= 0 and | 191 (#failed ~= 0 and |
193 "The following accounts could not be disconnected:\n"..t_concat(failed, "\n") or "") }; | 192 "The following accounts could not be disconnected:\n"..t_concat(failed, "\n") or "") }; |
194 end); | |
195 | |
196 -- Getting a user's password | |
197 local get_user_password_layout = dataforms_new{ | |
198 title = "Getting User's Password"; | |
199 instructions = "Fill out this form to get a user's password."; | |
200 | |
201 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; | |
202 { name = "accountjid", type = "jid-single", required = true, label = "The Jabber ID for which to retrieve the password" }; | |
203 }; | |
204 | |
205 local get_user_password_result_layout = dataforms_new{ | |
206 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; | |
207 { name = "accountjid", type = "jid-single", label = "JID" }; | |
208 { name = "password", type = "text-single", label = "Password" }; | |
209 }; | |
210 | |
211 local get_user_password_handler = adhoc_simple(get_user_password_layout, function(fields, err) | |
212 if err then | |
213 return generate_error_message(err); | |
214 end | |
215 local user, host = jid.split(fields.accountjid); | |
216 local accountjid; | |
217 local password; | |
218 if host ~= module_host then | |
219 return { status = "completed", error = { message = "Tried to get password for a user on " .. host .. " but command was sent to " .. module_host } }; | |
220 elseif usermanager_user_exists(user, host) then | |
221 accountjid = fields.accountjid; | |
222 password = usermanager_get_password(user, host); | |
223 else | |
224 return { status = "completed", error = { message = "User does not exist" } }; | |
225 end | |
226 return { status = "completed", result = { layout = get_user_password_result_layout, values = {accountjid = accountjid, password = password} } }; | |
227 end); | 193 end); |
228 | 194 |
229 -- Getting a user's roster | 195 -- Getting a user's roster |
230 local get_user_roster_layout = dataforms_new{ | 196 local get_user_roster_layout = dataforms_new{ |
231 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; | 197 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; |
825 local add_user_desc = adhoc_new("Add User", "http://jabber.org/protocol/admin#add-user", add_user_command_handler, "admin"); | 791 local add_user_desc = adhoc_new("Add User", "http://jabber.org/protocol/admin#add-user", add_user_command_handler, "admin"); |
826 local change_user_password_desc = adhoc_new("Change User Password", "http://jabber.org/protocol/admin#change-user-password", change_user_password_command_handler, "admin"); | 792 local change_user_password_desc = adhoc_new("Change User Password", "http://jabber.org/protocol/admin#change-user-password", change_user_password_command_handler, "admin"); |
827 local config_reload_desc = adhoc_new("Reload configuration", "http://prosody.im/protocol/config#reload", config_reload_handler, "global_admin"); | 793 local config_reload_desc = adhoc_new("Reload configuration", "http://prosody.im/protocol/config#reload", config_reload_handler, "global_admin"); |
828 local delete_user_desc = adhoc_new("Delete User", "http://jabber.org/protocol/admin#delete-user", delete_user_command_handler, "admin"); | 794 local delete_user_desc = adhoc_new("Delete User", "http://jabber.org/protocol/admin#delete-user", delete_user_command_handler, "admin"); |
829 local end_user_session_desc = adhoc_new("End User Session", "http://jabber.org/protocol/admin#end-user-session", end_user_session_handler, "admin"); | 795 local end_user_session_desc = adhoc_new("End User Session", "http://jabber.org/protocol/admin#end-user-session", end_user_session_handler, "admin"); |
830 local get_user_password_desc = adhoc_new("Get User Password", "http://jabber.org/protocol/admin#get-user-password", get_user_password_handler, "admin"); | |
831 local get_user_roster_desc = adhoc_new("Get User Roster","http://jabber.org/protocol/admin#get-user-roster", get_user_roster_handler, "admin"); | 796 local get_user_roster_desc = adhoc_new("Get User Roster","http://jabber.org/protocol/admin#get-user-roster", get_user_roster_handler, "admin"); |
832 local get_user_stats_desc = adhoc_new("Get User Statistics","http://jabber.org/protocol/admin#user-stats", get_user_stats_handler, "admin"); | 797 local get_user_stats_desc = adhoc_new("Get User Statistics","http://jabber.org/protocol/admin#user-stats", get_user_stats_handler, "admin"); |
833 local get_online_users_desc = adhoc_new("Get List of Online Users", "http://jabber.org/protocol/admin#get-online-users-list", get_online_users_command_handler, "admin"); | 798 local get_online_users_desc = adhoc_new("Get List of Online Users", "http://jabber.org/protocol/admin#get-online-users-list", get_online_users_command_handler, "admin"); |
834 local list_s2s_this_desc = adhoc_new("List S2S connections", "http://prosody.im/protocol/s2s#list", list_s2s_this_handler, "admin"); | 799 local list_s2s_this_desc = adhoc_new("List S2S connections", "http://prosody.im/protocol/s2s#list", list_s2s_this_handler, "admin"); |
835 local list_modules_desc = adhoc_new("List loaded modules", "http://prosody.im/protocol/modules#list", list_modules_handler, "admin"); | 800 local list_modules_desc = adhoc_new("List loaded modules", "http://prosody.im/protocol/modules#list", list_modules_handler, "admin"); |
846 module:provides("adhoc", add_user_desc); | 811 module:provides("adhoc", add_user_desc); |
847 module:provides("adhoc", change_user_password_desc); | 812 module:provides("adhoc", change_user_password_desc); |
848 module:provides("adhoc", config_reload_desc); | 813 module:provides("adhoc", config_reload_desc); |
849 module:provides("adhoc", delete_user_desc); | 814 module:provides("adhoc", delete_user_desc); |
850 module:provides("adhoc", end_user_session_desc); | 815 module:provides("adhoc", end_user_session_desc); |
851 module:provides("adhoc", get_user_password_desc); | |
852 module:provides("adhoc", get_user_roster_desc); | 816 module:provides("adhoc", get_user_roster_desc); |
853 module:provides("adhoc", get_user_stats_desc); | 817 module:provides("adhoc", get_user_stats_desc); |
854 module:provides("adhoc", get_online_users_desc); | 818 module:provides("adhoc", get_online_users_desc); |
855 module:provides("adhoc", list_s2s_this_desc); | 819 module:provides("adhoc", list_s2s_this_desc); |
856 module:provides("adhoc", list_modules_desc); | 820 module:provides("adhoc", list_modules_desc); |