# HG changeset patch # User Marco Cirillo # Date 1340660200 0 # Node ID 9080b0898b6fc9d3baeea1f440c3a3af9494d060 # Parent 97f6d7c4aaed6d8e2e881026b21b8c0f68615f8c mod_register_json: modify logic to prevent an unnecessary call to usermanager. diff -r 97f6d7c4aaed -r 9080b0898b6f mod_register_json/mod_register_json.lua --- a/mod_register_json/mod_register_json.lua Sat Jun 23 00:44:32 2012 +0500 +++ b/mod_register_json/mod_register_json.lua Mon Jun 25 21:36:40 2012 +0000 @@ -96,11 +96,11 @@ -- We first check if the supplied username for registration is already there. -- And nodeprep the username local username = nodeprep(req_body["username"]) - if not usermanager.user_exists(username, req_body["host"]) then - if not username then - module:log("debug", "%s supplied an username containing invalid characters: %s", user, username) - return http_response(event, 406, "Supplied username contains invalid characters, see RFC 6122.") - else + if not username then + module:log("debug", "%s supplied an username containing invalid characters: %s", user, username) + return http_response(event, 406, "Supplied username contains invalid characters, see RFC 6122.") + else + if not usermanager.user_exists(username, req_body["host"]) then local ok, error = usermanager.create_user(username, req_body["password"], req_body["host"]) if ok then hosts[req_body["host"]].events.fire_event("user-registered", { username = username, host = req_body["host"], source = "mod_register_json", session = { ip = req_body["ip"] } }) @@ -110,10 +110,10 @@ module:log("error", "user creation failed: "..error) return http_response(event, 500, "Encountered server error while creating the user: "..error) end + else + module:log("debug", "%s registration data submission for %s failed (user already exists)", user, username) + return http_response(event, 409, "User already exists.") end - else - module:log("debug", "%s registration data submission for %s failed (user already exists)", user, username) - return http_response(event, 409, "User already exists.") end end end