Software /
code /
prosody
Comparison
plugins/mod_register.lua @ 2935:4e4d0d899d9d
mod_register: Use set_password to set passwords instead of create_user.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Wed, 24 Mar 2010 00:05:55 +0500 |
parent | 2923:b7049746bd29 |
child | 3164:db9def53fe9c |
child | 3296:5f57f2f81c02 |
comparison
equal
deleted
inserted
replaced
2934:060bb8217fea | 2935:4e4d0d899d9d |
---|---|
10 local hosts = _G.hosts; | 10 local hosts = _G.hosts; |
11 local st = require "util.stanza"; | 11 local st = require "util.stanza"; |
12 local datamanager = require "util.datamanager"; | 12 local datamanager = require "util.datamanager"; |
13 local usermanager_user_exists = require "core.usermanager".user_exists; | 13 local usermanager_user_exists = require "core.usermanager".user_exists; |
14 local usermanager_create_user = require "core.usermanager".create_user; | 14 local usermanager_create_user = require "core.usermanager".create_user; |
15 local usermanager_set_password = require "core.usermanager".set_password; | |
15 local datamanager_store = require "util.datamanager".store; | 16 local datamanager_store = require "util.datamanager".store; |
16 local os_time = os.time; | 17 local os_time = os.time; |
17 local nodeprep = require "util.encodings".stringprep.nodeprep; | 18 local nodeprep = require "util.encodings".stringprep.nodeprep; |
18 | 19 |
19 module:add_feature("jabber:iq:register"); | 20 module:add_feature("jabber:iq:register"); |
32 if query.tags[1] and query.tags[1].name == "remove" then | 33 if query.tags[1] and query.tags[1].name == "remove" then |
33 -- TODO delete user auth data, send iq response, kick all user resources with a <not-authorized/>, delete all user data | 34 -- TODO delete user auth data, send iq response, kick all user resources with a <not-authorized/>, delete all user data |
34 local username, host = session.username, session.host; | 35 local username, host = session.username, session.host; |
35 --session.send(st.error_reply(stanza, "cancel", "not-allowed")); | 36 --session.send(st.error_reply(stanza, "cancel", "not-allowed")); |
36 --return; | 37 --return; |
37 usermanager_create_user(username, nil, host); -- Disable account | 38 usermanager_set_password(username, host, nil); -- Disable account |
38 -- FIXME the disabling currently allows a different user to recreate the account | 39 -- FIXME the disabling currently allows a different user to recreate the account |
39 -- we should add an in-memory account block mode when we have threading | 40 -- we should add an in-memory account block mode when we have threading |
40 session.send(st.reply(stanza)); | 41 session.send(st.reply(stanza)); |
41 local roster = session.roster; | 42 local roster = session.roster; |
42 for _, session in pairs(hosts[host].sessions[username].sessions) do -- disconnect all resources | 43 for _, session in pairs(hosts[host].sessions[username].sessions) do -- disconnect all resources |
67 if username and password then | 68 if username and password then |
68 -- FIXME shouldn't use table.concat | 69 -- FIXME shouldn't use table.concat |
69 username = nodeprep(table.concat(username)); | 70 username = nodeprep(table.concat(username)); |
70 password = table.concat(password); | 71 password = table.concat(password); |
71 if username == session.username then | 72 if username == session.username then |
72 if usermanager_create_user(username, password, session.host) then -- password change -- TODO is this the right way? | 73 if usermanager_set_password(username, session.host, password) then |
73 session.send(st.reply(stanza)); | 74 session.send(st.reply(stanza)); |
74 else | 75 else |
75 -- TODO unable to write file, file may be locked, etc, what's the correct error? | 76 -- TODO unable to write file, file may be locked, etc, what's the correct error? |
76 session.send(st.error_reply(stanza, "wait", "internal-server-error")); | 77 session.send(st.error_reply(stanza, "wait", "internal-server-error")); |
77 end | 78 end |