liquid_feedback_frontend
view app/main/admin/_action/member_update.lua @ 1546:ae194d0235c2
Set session cookie only if session is needed
| author | bsw | 
|---|---|
| date | Thu Oct 22 11:57:23 2020 +0200 (2020-10-22) | 
| parents | 9d15d509b5f6 | 
| children | 
 line source
     1 local id = param.get_id()
     3 local member = Member:by_id(id) or Member:new()
     5 param.update(member, "identification", "admin")
     7 local notify_email = param.get("notify_email")
     8 if notify_email == "" then
     9   notify_email = nil
    10 end
    12 member.notify_email = notify_email
    14 local notify_email_unconfirmed = param.get("notify_email_unconfirmed")
    15 if notify_email_unconfirmed == "" then
    16   notify_email_unconfirmed = nil
    17 end
    19 member.notify_email_unconfirmed = notify_email_unconfirmed
    21 local locked = param.get("locked", atom.boolean)
    22 if locked ~= nil then
    23   member.locked = locked
    24 end
    25 local deactivate = param.get("deactivate", atom.boolean)
    26 if deactivate then
    27   member.active = false
    28 end
    29 local login = param.get("login")
    30 if login and #login > 0 then
    31   member.login = login
    32 else
    33   member.login = nil
    34 end
    35 local name = param.get("name")
    36 if name then
    37   member.name = name
    38 end
    39 local identification = param.get("identification")
    40 if identification then
    41   identification = util.trim(identification)
    42   if identification == "" then
    43     identification = nil
    44   end
    45 end
    46 member.identification = identification
    48 local err = member:try_save()
    50 if err then
    51   slot.put_into("error", (_("Error while updating member, database reported:<br /><br /> (#{errormessage})"):gsub("#{errormessage}", tostring(err.message))))
    52   return false
    53 end
    55 if not id and config.single_unit_id then
    56   local privilege = Privilege:new()
    57   privilege.member_id = member.id
    58   privilege.unit_id = config.single_unit_id
    59   privilege.initiative_right = true
    60   privilege.voting_right = true
    61   privilege:save()
    62 end
    64 if not id then
    65   local profile = MemberProfile:new()
    66   profile.member_id = member.id
    67   profile.profile = json.object()
    68   profile:save()
    69 end
    71 local units = Unit:new_selector()
    72   :add_field("privilege.member_id NOTNULL", "privilege_exists")
    73   :add_field("privilege.voting_right", "voting_right")
    74   :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", member.id })
    75   :exec()
    77 for i, unit in ipairs(units) do
    78   local value = param.get("unit_" .. unit.id, atom.boolean)
    79   if value and not unit.privilege_exists then
    80     local privilege = Privilege:new()
    81     privilege.unit_id = unit.id
    82     privilege.member_id = member.id
    83     privilege.voting_right = true
    84     privilege:save()
    85   elseif not value and unit.privilege_exists then
    86     local privilege = Privilege:by_pk(unit.id, member.id)
    87     privilege:destroy()
    88   end
    89 end
    91 if not member.activated and param.get("invite_member", atom.boolean) then
    92   member:send_invitation()
    93 end
    95 if id then
    96   slot.put_into("notice", _"Member successfully updated")
    97 else
    98   slot.put_into("notice", _"Member successfully registered")
    99 end
