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 |