Software / code / prosody
Comparison
plugins/mod_register.lua @ 5511:764bda4b28b8
Merge 0.9->trunk
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 23 Apr 2013 15:14:47 +0100 |
| parent | 5500:eeea0eb2602a |
| child | 5637:991b47778bf3 |
comparison
equal
deleted
inserted
replaced
| 5497:b42781a96174 | 5511:764bda4b28b8 |
|---|---|
| 6 -- COPYING file in the source package for more information. | 6 -- COPYING file in the source package for more information. |
| 7 -- | 7 -- |
| 8 | 8 |
| 9 | 9 |
| 10 local st = require "util.stanza"; | 10 local st = require "util.stanza"; |
| 11 local datamanager = require "util.datamanager"; | |
| 12 local dataform_new = require "util.dataforms".new; | 11 local dataform_new = require "util.dataforms".new; |
| 13 local usermanager_user_exists = require "core.usermanager".user_exists; | 12 local usermanager_user_exists = require "core.usermanager".user_exists; |
| 14 local usermanager_create_user = require "core.usermanager".create_user; | 13 local usermanager_create_user = require "core.usermanager".create_user; |
| 15 local usermanager_set_password = require "core.usermanager".set_password; | 14 local usermanager_set_password = require "core.usermanager".set_password; |
| 16 local usermanager_delete_user = require "core.usermanager".delete_user; | 15 local usermanager_delete_user = require "core.usermanager".delete_user; |
| 19 local jid_bare = require "util.jid".bare; | 18 local jid_bare = require "util.jid".bare; |
| 20 | 19 |
| 21 local compat = module:get_option_boolean("registration_compat", true); | 20 local compat = module:get_option_boolean("registration_compat", true); |
| 22 local allow_registration = module:get_option_boolean("allow_registration", false); | 21 local allow_registration = module:get_option_boolean("allow_registration", false); |
| 23 local additional_fields = module:get_option("additional_registration_fields", {}); | 22 local additional_fields = module:get_option("additional_registration_fields", {}); |
| 23 | |
| 24 local account_details = module:open_store("account_details"); | |
| 24 | 25 |
| 25 local field_map = { | 26 local field_map = { |
| 26 username = { name = "username", type = "text-single", label = "Username", required = true }; | 27 username = { name = "username", type = "text-single", label = "Username", required = true }; |
| 27 password = { name = "password", type = "text-private", label = "Password", required = true }; | 28 password = { name = "password", type = "text-private", label = "Password", required = true }; |
| 28 nick = { name = "nick", type = "text-single", label = "Nickname" }; | 29 nick = { name = "nick", type = "text-single", label = "Nickname" }; |
| 232 session.send(st.error_reply(stanza, "cancel", "conflict", "The requested username already exists.")); | 233 session.send(st.error_reply(stanza, "cancel", "conflict", "The requested username already exists.")); |
| 233 else | 234 else |
| 234 -- TODO unable to write file, file may be locked, etc, what's the correct error? | 235 -- TODO unable to write file, file may be locked, etc, what's the correct error? |
| 235 local error_reply = st.error_reply(stanza, "wait", "internal-server-error", "Failed to write data to disk."); | 236 local error_reply = st.error_reply(stanza, "wait", "internal-server-error", "Failed to write data to disk."); |
| 236 if usermanager_create_user(username, password, host) then | 237 if usermanager_create_user(username, password, host) then |
| 237 if next(data) and not datamanager.store(username, host, "account_details", data) then | 238 if next(data) and not account_details:set(username, data) then |
| 238 usermanager_delete_user(username, host); | 239 usermanager_delete_user(username, host); |
| 239 session.send(error_reply); | 240 session.send(error_reply); |
| 240 return true; | 241 return true; |
| 241 end | 242 end |
| 242 session.send(st.reply(stanza)); -- user created! | 243 session.send(st.reply(stanza)); -- user created! |