liquid_feedback_frontend
view app/main/survey/_action/participate.lua @ 1738:38a8b840bff7
Create individual privilege only if configured
| author | bsw | 
|---|---|
| date | Mon Oct 11 09:41:05 2021 +0200 (2021-10-11) | 
| parents | 5a8a09119865 | 
| children | 2d4136357989 | 
 line source
     1 local skip_survey = param.get("skip_survey")
     3 local survey = Survey:get_open()
     5 local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
     7 if survey_member and not skip_survey then
     8   return true
     9 end
    11 local secret_length = 24
    12 local secret_alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
    13 local secret_purposes = { "oauth", "_other" }
    14 for idx, purpose in ipairs(secret_purposes) do
    15   secret_purposes[purpose] = idx
    16 end
    18 local function random_string(length_multiplier)
    19   return multirand.string(
    20     secret_length * (length_multiplier or 1),
    21     secret_alphabet
    22   )
    23 end
    25 if not survey_member then
    26   survey_member = SurveyMember:new()
    27   survey_member.survey_id = survey.id
    28   survey_member.member_id = app.session.member_id
    29 end
    31 if skip_survey then
    32   local answer_set = survey_member.answer_set
    33   if answer_set then
    34     survey_member.survey_answer_set_ident = nil
    35     survey_member:save()
    36     answer_set:destroy()
    37   end
    38   survey_member.rejected = 'now'
    39 else
    40   local answer_set = SurveyAnswerSet:new()
    41   answer_set.ident = random_string()
    42   answer_set.survey_id = survey.id
    43   answer_set:save()
    44   survey_member.survey_answer_set_ident = answer_set.ident
    45 end
    47 survey_member:save()
    49 if skip_survey then
    50   return "skip_survey"
    51 end
    53 return true
