comparison mod_register_web/mod_register_web.lua @ 1320:e670d4cc5027

mod_register_web: Pass request around so IP address can be reported
author Kim Alvefur <zash@zash.se>
date Wed, 26 Feb 2014 20:15:41 +0100
parents 34fbe58d19da
children 742f3dc601b5
comparison
equal deleted inserted replaced
1319:400a7fdd2049 1320:e670d4cc5027
104 notice = display_options and display_options.register_error or ""; 104 notice = display_options and display_options.register_error or "";
105 captcha = generate_captcha(display_options); 105 captcha = generate_captcha(display_options);
106 }) 106 })
107 end 107 end
108 108
109 function register_user(form) 109 function register_user(form, origin)
110 local prepped_username = nodeprep(form.username); 110 local prepped_username = nodeprep(form.username);
111 if not prepped_username then 111 if not prepped_username then
112 return nil, "Username contains forbidden characters"; 112 return nil, "Username contains forbidden characters";
113 end 113 end
114 if #prepped_username == 0 then 114 if #prepped_username == 0 then
135 datamanager.store(prepped_username, module.host, "account_details", extra_data); 135 datamanager.store(prepped_username, module.host, "account_details", extra_data);
136 end 136 end
137 module:fire_event("user-registered", { 137 module:fire_event("user-registered", {
138 username = prepped_username, 138 username = prepped_username,
139 host = module.host, 139 host = module.host,
140 source = module.name 140 source = module.name,
141 ip = origin.conn:ip(),
141 }); 142 });
142 end 143 end
143 return ok, err; 144 return ok, err;
144 end 145 end
145 146
159 function handle_form(event) 160 function handle_form(event)
160 local request, response = event.request, event.response; 161 local request, response = event.request, event.response;
161 local form = http.formdecode(request.body); 162 local form = http.formdecode(request.body);
162 verify_captcha(request, form, function (ok, err) 163 verify_captcha(request, form, function (ok, err)
163 if ok then 164 if ok then
164 local register_ok, register_err = register_user(form); 165 local register_ok, register_err = register_user(form, request);
165 response:send(generate_register_response(event, form, register_ok, register_err)); 166 response:send(generate_register_response(event, form, register_ok, register_err));
166 else 167 else
167 response:send(generate_page(event, { register_error = err })); 168 response:send(generate_page(event, { register_error = err }));
168 end 169 end
169 end); 170 end);