bsw/jbe@1309: local verification = Verification:by_id(param.get_id()) bsw/jbe@1309: bsw/jbe@1309: local function update_data() bsw@1356: local old_verification_data = verification.verification_data or {} bsw/jbe@1309: verification.verification_data = json.object() bsw/jbe@1309: bsw/jbe@1309: for i, field in ipairs(config.self_registration.fields) do bsw/jbe@1309: local value = param.get(field.name) bsw/jbe@1309: if field.name == "fiscal_code" then bsw/jbe@1309: value = string.gsub(value, "[^A-Z0-9]", "") bsw/jbe@1309: elseif field.name == "mobile_phone" then bsw/jbe@1309: value = string.gsub(value, "[^0-9]", "") bsw@1352: elseif field.name == "unit" then bsw@1352: value = string.gsub(value, "[^0-9]", "") bsw@1356: if old_verification_data.unit and old_verification_data.unit ~= "" then bsw@1358: local old_unit_privilege = Privilege:by_pk(old_verification_data.unit, verification.verified_member_id) bsw@1357: if old_unit_privilege then bsw@1357: old_unit_privilege:destroy() bsw@1357: end bsw@1356: end bsw@1356: if value ~= old_verification_data.unit and value ~= "" then bsw@1353: local unit_privilege = Privilege:new() bsw@1352: unit_privilege.member_id = verification.verified_member_id bsw@1355: unit_privilege.unit_id = tonumber(value) bsw@1352: unit_privilege.voting_right = true bsw@1352: unit_privilege.initiative_right = true bsw@1354: unit_privilege:save() bsw@1352: end bsw@1346: elseif field.type ~= "image" then 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@1359: elseif field.name == "sequential_number" then bsw@1359: value = old_verification_data.sequential_number bsw/jbe@1309: end bsw/jbe@1309: verification.verification_data[field.name] = value bsw/jbe@1309: end bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: if verification.verified_member_id then bsw/jbe@1309: bsw/jbe@1309: local member = Member:by_id(verification.verified_member_id) bsw/jbe@1309: bsw/jbe@1309: if param.get("cancel") then bsw/jbe@1309: db:query({ "SELECT delete_member(?)", member.id }) bsw/jbe@1309: return bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: member.identification = param.get("identification") bsw/jbe@1309: member.notify_email = param.get("email") bsw/jbe@1309: member:save() bsw/jbe@1309: bsw/jbe@1309: update_data() bsw/jbe@1309: bsw/jbe@1309: verification:save() bsw/jbe@1309: bsw/jbe@1309: if param.get("invite") then bsw/jbe@1309: member:send_invitation() bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: elseif param.get("drop") then bsw/jbe@1309: bsw/jbe@1309: verification.denied = "now" bsw/jbe@1309: verification:save() bsw/jbe@1309: return bsw/jbe@1309: bsw/jbe@1309: elseif param.get("accredit") then bsw/jbe@1309: bsw/jbe@1309: local member = Member:by_id(verification.requesting_member_id) bsw/jbe@1309: member.identification = param.get("identification") bsw/jbe@1309: member.notify_email = param.get("email") bsw/jbe@1309: member:save() bsw/jbe@1309: member:send_invitation() bsw/jbe@1309: bsw/jbe@1309: for i, unit_id in ipairs(config.self_registration.grant_privileges_for_unit_ids) do bsw/jbe@1309: local privilege = Privilege:new() bsw/jbe@1309: privilege.member_id = member.id bsw/jbe@1309: privilege.unit_id = unit_id bsw/jbe@1309: privilege.initiative_right = true bsw/jbe@1309: privilege.voting_right = true bsw/jbe@1309: privilege:save() bsw/jbe@1309: end bsw/jbe@1309: bsw/jbe@1309: update_data() bsw/jbe@1309: bsw/jbe@1309: verification.verified_member_id = verification.requesting_member_id bsw/jbe@1309: verification.verifying_member_id = app.session.member_id bsw/jbe@1309: verification.verified = "now" bsw/jbe@1309: bsw/jbe@1309: verification:save() bsw/jbe@1309: bsw/jbe@1309: bsw/jbe@1309: else bsw/jbe@1309: bsw/jbe@1309: update_data() bsw/jbe@1309: verification:save() bsw/jbe@1309: bsw/jbe@1309: end