liquid_feedback_frontend

annotate app/main/admin/_action/member_update.lua @ 1532:3c15fea3f1c0

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

Impressum / About Us