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 |
