# HG changeset patch # User bsw # Date 1632989071 -7200 # Node ID 899fdfb23465aec2d6a6b156961505ea8680a007 # Parent b2868d84275e909a9db394eb057919d42755a05a Modified workflow of automatic verification diff -r b2868d84275e -r 899fdfb23465 app/main/registration/_action/register.lua --- a/app/main/registration/_action/register.lua Thu Sep 23 18:21:25 2021 +0200 +++ b/app/main/registration/_action/register.lua Thu Sep 30 10:04:31 2021 +0200 @@ -282,17 +282,19 @@ table.insert(manual_check_reasons, "User requested manual verification (during step 1)") end -if not config.self_registration.sms_id then - table.insert(manual_check_reasons, "User requested manual verification (during step 1)") +if config.self_registration.sms_id then + local existing_verifications = Verification:new_selector() + :add_where{ "request_data->>'mobile_phone' = ?", mobile_phone } + :add_where("comment ilike '%SMS code%'") + :exec() + + if #existing_verifications > 0 then + table.insert(manual_check_reasons, "mobile phone number already used before") + end end -local existing_verifications = Verification:new_selector() - :add_where{ "request_data->>'mobile_phone' = ?", mobile_phone } - :add_where("comment ilike '%SMS code%'") - :exec() - -if #existing_verifications > 0 then - table.insert(manual_check_reasons, "mobile phone number already used before") +if config.self_registration.force_manual_check then + table.insert(manual_check_reasons, "Manual check enforced by configuration") end if #manual_check_reasons > 0 then @@ -301,13 +303,12 @@ verification:save() request.redirect{ external = encode.url { module = "registration", view = "register_manual_check_needed" } } -else +elseif config.self_registration.sms_id then local pin = multirand.string(6, "0123456789") verification.request_data.sms_code = pin verification.request_data.sms_code_tries = 3 local sms_text = config.self_registration.sms_text local sms_text = string.gsub(sms_text, "{PIN}", pin) - print("SMS Code: " .. sms_text) local phone_number if config.self_registration.sms_strip_leading_zero then phone_number = string.match(verification.request_data.mobile_phone, "0(.+)") @@ -331,9 +332,7 @@ local params_string = table.concat(params_list, "&") local url = "http://gateway.any-sms.biz/send_sms.php?" .. params_string - print("curl " .. url) local output, err, status = extos.pfilter(nil, "curl", url) - print(output) verification.request_data.sms_code_sent_status = output if not string.match(output, "^err:0") then verification.comment = (verification.comment or "").. " /// Manual verification needed: sending SMS failed (" .. output .. ")" @@ -344,6 +343,17 @@ verification.comment = (verification.comment or "") .. " /// SMS code " .. pin .. " sent" verification:save() request.redirect{ external = encode.url { module = "registration", view = "register_enter_pin", id = verification.id } } + +else + local success = execute.action{ + module = "registration", action = "_verify", params = { + verification = verification + } + } + if success == "ok" then + request.redirect{ external = encode.url { module = "registration", view = "register_completed" } } + end + end diff -r b2868d84275e -r 899fdfb23465 app/main/registration/_action/register_pin.lua --- a/app/main/registration/_action/register_pin.lua Thu Sep 23 18:21:25 2021 +0200 +++ b/app/main/registration/_action/register_pin.lua Thu Sep 30 10:04:31 2021 +0200 @@ -29,43 +29,12 @@ verification.comment = (verification.comment or "").. " /// User entered correct PIN code" -verification.verified = "now" -verification.verification_data = verification.request_data - -local identification = config.self_registration.identification_func(verification.request_data) - -local members_with_same_identification = Member:new_selector() - :add_where{ "identification = ?", identification } - :exec() - -if #members_with_same_identification > 0 then - verification.comment = (verification.comment or "").. " /// Manual verification needed: user with same name already exists" - verification:save() - request.redirect{ external = encode.url { module = "registration", view = "register_manual_check_needed" } } - return false +local success = execute.action{ + module = "registration", action = "_verify", params = { + verification = verification + } +} +if success == "ok" then + request.redirect{ external = encode.url { module = "registration", view = "register_completed" } } end -local member = Member:by_id(verification.requesting_member_id) - -member.identification = identification -member.notify_email = verification.request_data.email - -member:send_invitation() - -for i, unit_id in ipairs(config.self_registration.grant_privileges_for_unit_ids) do - local privilege = Privilege:new() - privilege.member_id = member.id - privilege.unit_id = unit_id - privilege.initiative_right = true - privilege.voting_right = true - privilege:save() -end - -verification.verified_member_id = member.id - -verification.comment = (verification.comment or "").. " /// Account created" - -verification:save() - - -request.redirect{ external = encode.url { module = "registration", view = "register_completed" } } diff -r b2868d84275e -r 899fdfb23465 app/main/registration_admin/verification_accredited.lua --- a/app/main/registration_admin/verification_accredited.lua Thu Sep 23 18:21:25 2021 +0200 +++ b/app/main/registration_admin/verification_accredited.lua Thu Sep 30 10:04:31 2021 +0200 @@ -87,7 +87,7 @@ slot.put(" ") ui.tag{ content = state } elseif record.verified then - ui.tag{ content = _"SMS" } + ui.tag{ content = _"automatically verified" } end end