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
|