mod_register_json/mod_register_json.lua
changeset 721 9080b0898b6f
parent 710 b0c0acccd7c4
child 723 c26652d055b5
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