bsw/jbe@1309: if not app.session.member or app.session.member.role then bsw/jbe@1309: return bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: local errors = 0 bsw/jbe@1309: bsw/jbe@1309: if config.use_terms_checkboxes_role then bsw/jbe@1309: for i, checkbox in ipairs(config.use_terms_checkboxes_role) do bsw/jbe@1309: local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) bsw/jbe@1309: if not accepted then bsw/jbe@1309: slot.put_into("error", checkbox.not_accepted_error) bsw/jbe@1309: errors = errors + 1 bsw/jbe@1309: end bsw/jbe@1309: end bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: local email = param.get("email") bsw/jbe@1309: bsw/jbe@1309: local members = Member:new_selector() bsw/jbe@1309: :add_where{ "notify_email = ? OR notify_email_unconfirmed = ?", email } bsw/jbe@1309: :exec() bsw/jbe@1309: bsw/jbe@1309: if #members > 0 then bsw/jbe@1309: slot.select("error", function() bsw/jbe@1309: slot.put_into("registration_register_email_invalid", "already_used") bsw/jbe@1309: ui.tag{ content = _"This email address already been used. Please check your inbox for an invitation or contact us." } bsw/jbe@1309: end) bsw/jbe@1309: errors = errors + 1 bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: local verification = RoleVerification:new() bsw/jbe@1309: verification.requesting_member_id = app.session.member_id bsw/jbe@1309: verification.requested = "now" bsw/jbe@1309: verification.request_origin = json.object{ bsw/jbe@1309: ip = request.get_header("X-Forwarded-For"), bsw/jbe@1309: hostname = request.get_header("X-Forwarded-Host") bsw/jbe@1309: } bsw/jbe@1309: verification.request_data = json.object() bsw/jbe@1309: bsw/jbe@1309: for i, field in ipairs(config.role_registration.fields) do bsw/jbe@1309: local value = param.get("verification_data_" .. field.name) bsw/jbe@1309: if not value or #value < 1 then bsw/jbe@1309: slot.put_into("self_registration__invalid_" .. field.name, "to_short") bsw/jbe@1309: slot.select("error", function() bsw/jbe@1309: ui.container{ content = _("Please enter: #{field_name}", { field_name = field.label }) } bsw/jbe@1309: end) bsw/jbe@1309: errors = errors + 1 bsw/jbe@1309: end bsw/jbe@1309: value = string.gsub(value, "^%s+", "") bsw/jbe@1309: value = string.gsub(value, "%s+$", "") bsw/jbe@1309: value = string.gsub(value, "%s+", " ") bsw/jbe@1309: verification.request_data[field.name] = value bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: verification:save() bsw/jbe@1309: bsw/jbe@1309: request.redirect{ external = encode.url { module = "member", view = "show", id = app.session.member_id } }