Mercurial > prosody-modules
comparison mod_register_json/mod_register_json.lua @ 721:9080b0898b6f
mod_register_json: modify logic to prevent an unnecessary call to usermanager.
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Mon, 25 Jun 2012 21:36:40 +0000 |
parents | b0c0acccd7c4 |
children | c26652d055b5 |
comparison
equal
deleted
inserted
replaced
720:97f6d7c4aaed | 721:9080b0898b6f |
---|---|
94 end | 94 end |
95 | 95 |
96 -- We first check if the supplied username for registration is already there. | 96 -- We first check if the supplied username for registration is already there. |
97 -- And nodeprep the username | 97 -- And nodeprep the username |
98 local username = nodeprep(req_body["username"]) | 98 local username = nodeprep(req_body["username"]) |
99 if not usermanager.user_exists(username, req_body["host"]) then | 99 if not username then |
100 if not username then | 100 module:log("debug", "%s supplied an username containing invalid characters: %s", user, username) |
101 module:log("debug", "%s supplied an username containing invalid characters: %s", user, username) | 101 return http_response(event, 406, "Supplied username contains invalid characters, see RFC 6122.") |
102 return http_response(event, 406, "Supplied username contains invalid characters, see RFC 6122.") | 102 else |
103 else | 103 if not usermanager.user_exists(username, req_body["host"]) then |
104 local ok, error = usermanager.create_user(username, req_body["password"], req_body["host"]) | 104 local ok, error = usermanager.create_user(username, req_body["password"], req_body["host"]) |
105 if ok then | 105 if ok then |
106 hosts[req_body["host"]].events.fire_event("user-registered", { username = username, host = req_body["host"], source = "mod_register_json", session = { ip = req_body["ip"] } }) | 106 hosts[req_body["host"]].events.fire_event("user-registered", { username = username, host = req_body["host"], source = "mod_register_json", session = { ip = req_body["ip"] } }) |
107 module:log("debug", "%s registration data submission for %s@%s is successful", user, username, req_body["host"]) | 107 module:log("debug", "%s registration data submission for %s@%s is successful", user, username, req_body["host"]) |
108 return http_response(event, 200, "Done.") | 108 return http_response(event, 200, "Done.") |
109 else | 109 else |
110 module:log("error", "user creation failed: "..error) | 110 module:log("error", "user creation failed: "..error) |
111 return http_response(event, 500, "Encountered server error while creating the user: "..error) | 111 return http_response(event, 500, "Encountered server error while creating the user: "..error) |
112 end | 112 end |
113 else | |
114 module:log("debug", "%s registration data submission for %s failed (user already exists)", user, username) | |
115 return http_response(event, 409, "User already exists.") | |
113 end | 116 end |
114 else | |
115 module:log("debug", "%s registration data submission for %s failed (user already exists)", user, username) | |
116 return http_response(event, 409, "User already exists.") | |
117 end | 117 end |
118 end | 118 end |
119 end | 119 end |
120 end | 120 end |
121 | 121 |