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 |