rev |
line source |
bsw/jbe@1309
|
1 if not app.session.member or app.session.member.role then
|
bsw/jbe@1309
|
2 return
|
bsw/jbe@1309
|
3 end
|
bsw/jbe@1309
|
4
|
bsw/jbe@1309
|
5 local errors = 0
|
bsw/jbe@1309
|
6
|
bsw/jbe@1309
|
7 if config.use_terms_checkboxes_role then
|
bsw/jbe@1309
|
8 for i, checkbox in ipairs(config.use_terms_checkboxes_role) do
|
bsw/jbe@1309
|
9 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
|
bsw/jbe@1309
|
10 if not accepted then
|
bsw/jbe@1309
|
11 slot.put_into("error", checkbox.not_accepted_error)
|
bsw/jbe@1309
|
12 errors = errors + 1
|
bsw/jbe@1309
|
13 end
|
bsw/jbe@1309
|
14 end
|
bsw/jbe@1309
|
15 end
|
bsw/jbe@1309
|
16
|
bsw/jbe@1309
|
17 local email = param.get("email")
|
bsw/jbe@1309
|
18
|
bsw/jbe@1309
|
19 local members = Member:new_selector()
|
bsw/jbe@1309
|
20 :add_where{ "notify_email = ? OR notify_email_unconfirmed = ?", email }
|
bsw/jbe@1309
|
21 :exec()
|
bsw/jbe@1309
|
22
|
bsw/jbe@1309
|
23 if #members > 0 then
|
bsw/jbe@1309
|
24 slot.select("error", function()
|
bsw/jbe@1309
|
25 slot.put_into("registration_register_email_invalid", "already_used")
|
bsw/jbe@1309
|
26 ui.tag{ content = _"This email address already been used. Please check your inbox for an invitation or contact us." }
|
bsw/jbe@1309
|
27 end)
|
bsw/jbe@1309
|
28 errors = errors + 1
|
bsw/jbe@1309
|
29 end
|
bsw/jbe@1309
|
30
|
bsw/jbe@1309
|
31 local verification = RoleVerification:new()
|
bsw/jbe@1309
|
32 verification.requesting_member_id = app.session.member_id
|
bsw/jbe@1309
|
33 verification.requested = "now"
|
bsw/jbe@1309
|
34 verification.request_origin = json.object{
|
bsw/jbe@1309
|
35 ip = request.get_header("X-Forwarded-For"),
|
bsw/jbe@1309
|
36 hostname = request.get_header("X-Forwarded-Host")
|
bsw/jbe@1309
|
37 }
|
bsw/jbe@1309
|
38 verification.request_data = json.object()
|
bsw/jbe@1309
|
39
|
bsw/jbe@1309
|
40 for i, field in ipairs(config.role_registration.fields) do
|
bsw/jbe@1309
|
41 local value = param.get("verification_data_" .. field.name)
|
bsw/jbe@1309
|
42 if not value or #value < 1 then
|
bsw/jbe@1309
|
43 slot.put_into("self_registration__invalid_" .. field.name, "to_short")
|
bsw/jbe@1309
|
44 slot.select("error", function()
|
bsw/jbe@1309
|
45 ui.container{ content = _("Please enter: #{field_name}", { field_name = field.label }) }
|
bsw/jbe@1309
|
46 end)
|
bsw/jbe@1309
|
47 errors = errors + 1
|
bsw/jbe@1309
|
48 end
|
bsw/jbe@1309
|
49 value = string.gsub(value, "^%s+", "")
|
bsw/jbe@1309
|
50 value = string.gsub(value, "%s+$", "")
|
bsw/jbe@1309
|
51 value = string.gsub(value, "%s+", " ")
|
bsw/jbe@1309
|
52 verification.request_data[field.name] = value
|
bsw/jbe@1309
|
53 end
|
bsw/jbe@1309
|
54
|
bsw/jbe@1309
|
55 verification:save()
|
bsw/jbe@1309
|
56
|
bsw/jbe@1309
|
57 request.redirect{ external = encode.url { module = "member", view = "show", id = app.session.member_id } }
|