| 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 } } 
 |