# HG changeset patch # User bsw # Date 1638448385 -3600 # Node ID fc3f15316a680c3149b547328cf0fa7e2c104b3a # Parent c8fe2498a1af62698c45fe73b44ab028d04be063 Better error handling also for creating new accounts diff -r c8fe2498a1af -r fc3f15316a68 app/main/registration_admin/_action/update_verification.lua --- a/app/main/registration_admin/_action/update_verification.lua Thu Dec 02 13:30:20 2021 +0100 +++ b/app/main/registration_admin/_action/update_verification.lua Thu Dec 02 13:33:05 2021 +0100 @@ -50,6 +50,19 @@ end end +local function check_db_error(db_error) + if db_error then + if db_error.is_kind_of("IntegrityConstraintViolation.UniqueViolation") then + slot.select("error", function() + ui.tag{ content = _"Identification unique violation: This identification is already in use for another member." } + end ) + return false + else + error(db_error) + end + end +end + if verification.verified_member_id then local member = Member:by_id(verification.verified_member_id) @@ -66,21 +79,11 @@ member.identification = identification member.notify_email = param.get("email") - db_error = member:try_save() - - if db_error then - if db_error.is_kind_of("IntegrityConstraintViolation.UniqueViolation") then - slot.select("error", function() - ui.tag{ content = _"Identification unique violation: This identification is already in use for another member." } - end ) - return false - else - error(db_error) - end - end - + + check_db_error(member:try_save()) + update_data() - + verification:save() if param.get("invite") then @@ -98,7 +101,7 @@ local member = Member:by_id(verification.requesting_member_id) member.identification = param.get("identification") member.notify_email = param.get("email") - member:save() + check_db_error(member:try_save()) if config.self_registration.manual_invitation then local function secret_token()