liquid_feedback_frontend

annotate app/main/survey/_action/participate.lua @ 1825:7b04f14c6d0a

Check area configuration only for new issues
author bsw
date Thu Feb 03 11:47:41 2022 +0100 (2022-02-03)
parents 2d4136357989
children
rev   line source
bsw@1735 1 local skip_survey = param.get("skip_survey")
bsw@1735 2
bsw@1735 3 local survey = Survey:get_open()
bsw@1735 4
bsw@1735 5 local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
bsw@1735 6
bsw@1735 7 if survey_member and not skip_survey then
bsw@1735 8 return true
bsw@1735 9 end
bsw@1735 10
bsw@1735 11 local secret_length = 24
bsw@1735 12 local secret_alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
bsw@1735 13 local secret_purposes = { "oauth", "_other" }
bsw@1735 14 for idx, purpose in ipairs(secret_purposes) do
bsw@1735 15 secret_purposes[purpose] = idx
bsw@1735 16 end
bsw@1735 17
bsw@1735 18 local function random_string(length_multiplier)
bsw@1735 19 return multirand.string(
bsw@1735 20 secret_length * (length_multiplier or 1),
bsw@1735 21 secret_alphabet
bsw@1735 22 )
bsw@1735 23 end
bsw@1735 24
bsw@1735 25 if not survey_member then
bsw@1735 26 survey_member = SurveyMember:new()
bsw@1735 27 survey_member.survey_id = survey.id
bsw@1735 28 survey_member.member_id = app.session.member_id
bsw@1735 29 end
bsw@1735 30
bsw@1735 31 if skip_survey then
bsw@1735 32 local answer_set = survey_member.answer_set
bsw@1735 33 if answer_set then
bsw@1735 34 survey_member.survey_answer_set_ident = nil
bsw@1735 35 survey_member:save()
bsw@1735 36 answer_set:destroy()
bsw@1735 37 end
bsw@1735 38 survey_member.rejected = 'now'
bsw@1735 39 else
bsw@1735 40 local answer_set = SurveyAnswerSet:new()
bsw@1735 41 answer_set.ident = random_string()
bsw@1735 42 answer_set.survey_id = survey.id
bsw@1818 43 local verification = Verification:new_selector()
bsw@1818 44 :add_where{ "verified_member_id = ?", app.session.member_id }
bsw@1818 45 :optional_object_mode()
bsw@1818 46 :exec()
bsw@1818 47 if verification then
bsw@1818 48 answer_set.data = verification.request_data
bsw@1818 49 answer_set.data.name = nil
bsw@1818 50 answer_set.data.email = nil
bsw@1818 51 end
bsw@1735 52 answer_set:save()
bsw@1735 53 survey_member.survey_answer_set_ident = answer_set.ident
bsw@1735 54 end
bsw@1735 55
bsw@1735 56 survey_member:save()
bsw@1735 57
bsw@1735 58 if skip_survey then
bsw@1735 59 return "skip_survey"
bsw@1735 60 end
bsw@1735 61
bsw@1735 62 return true
bsw@1735 63

Impressum / About Us