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@584
|
5 param.update(member, "identification", "notify_email", "admin")
|
bsw@584
|
6
|
bsw@584
|
7 local locked = param.get("locked", atom.boolean)
|
bsw@589
|
8 if locked ~= nil then
|
bsw@584
|
9 member.locked = locked
|
bsw@584
|
10 end
|
bsw@590
|
11 local deactivate = param.get("deactivate", atom.boolean)
|
bsw@590
|
12 if deactivate then
|
bsw@590
|
13 member.active = false
|
bsw@590
|
14 end
|
bsw@584
|
15 local login = param.get("login")
|
bsw@584
|
16 if login then
|
bsw@584
|
17 member.login = login
|
bsw@584
|
18 end
|
bsw@584
|
19 local name = param.get("name")
|
bsw@584
|
20 if name then
|
bsw@584
|
21 member.name = name
|
bsw@584
|
22 end
|
bsw@836
|
23 local identification = param.get("identification")
|
bsw@836
|
24 if identification then
|
bsw@836
|
25 identification = util.trim(identification)
|
bsw@836
|
26 if identification == "" then
|
bsw@836
|
27 identification = nil
|
bsw@836
|
28 end
|
bsw@836
|
29 end
|
bsw@836
|
30 member.identification = identification
|
bsw/jbe@0
|
31
|
bsw/jbe@0
|
32 local err = member:try_save()
|
bsw/jbe@0
|
33
|
bsw/jbe@0
|
34 if err then
|
bsw/jbe@0
|
35 slot.put_into("error", (_("Error while updating member, database reported:<br /><br /> (#{errormessage})"):gsub("#{errormessage}", tostring(err.message))))
|
bsw/jbe@0
|
36 return false
|
bsw@357
|
37 end
|
bsw@357
|
38
|
bsw@357
|
39 if not id and config.single_unit_id then
|
bsw@357
|
40 local privilege = Privilege:new()
|
bsw@357
|
41 privilege.member_id = member.id
|
bsw@357
|
42 privilege.unit_id = config.single_unit_id
|
bsw@357
|
43 privilege.voting_right = true
|
bsw@359
|
44 privilege:save()
|
bsw@357
|
45 end
|
bsw@357
|
46
|
bsw@512
|
47 local units = Unit:new_selector()
|
bsw@512
|
48 :add_field("privilege.member_id NOTNULL", "privilege_exists")
|
bsw@512
|
49 :add_field("privilege.voting_right", "voting_right")
|
bsw@512
|
50 :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", member.id })
|
bsw@512
|
51 :exec()
|
bsw@512
|
52
|
bsw@512
|
53 for i, unit in ipairs(units) do
|
bsw@512
|
54 local value = param.get("unit_" .. unit.id, atom.boolean)
|
bsw@512
|
55 if value and not unit.privilege_exists then
|
bsw@512
|
56 privilege = Privilege:new()
|
bsw@512
|
57 privilege.unit_id = unit.id
|
bsw@512
|
58 privilege.member_id = member.id
|
bsw@512
|
59 privilege.voting_right = true
|
bsw@512
|
60 privilege:save()
|
bsw@512
|
61 elseif not value and unit.privilege_exists then
|
bsw@512
|
62 local privilege = Privilege:by_pk(unit.id, member.id)
|
bsw@512
|
63 privilege:destroy()
|
bsw@512
|
64 end
|
bsw@512
|
65 end
|
bsw@512
|
66
|
bsw@581
|
67 if not member.activated and param.get("invite_member", atom.boolean) then
|
bsw@581
|
68 member:send_invitation()
|
bsw@581
|
69 end
|
bsw@581
|
70
|
bsw@357
|
71 if id then
|
bsw@357
|
72 slot.put_into("notice", _"Member successfully updated")
|
bsw/jbe@0
|
73 else
|
bsw@357
|
74 slot.put_into("notice", _"Member successfully registered")
|
bsw@244
|
75 end
|