| 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@584
 | 
    30 if login then
 | 
| 
bsw@584
 | 
    31   member.login = login
 | 
| 
bsw@584
 | 
    32 end
 | 
| 
bsw@584
 | 
    33 local name = param.get("name")
 | 
| 
bsw@584
 | 
    34 if name then
 | 
| 
bsw@584
 | 
    35   member.name = name
 | 
| 
bsw@584
 | 
    36 end
 | 
| 
bsw@836
 | 
    37 local identification = param.get("identification")
 | 
| 
bsw@836
 | 
    38 if identification then
 | 
| 
bsw@836
 | 
    39   identification = util.trim(identification)
 | 
| 
bsw@836
 | 
    40   if identification == "" then
 | 
| 
bsw@836
 | 
    41     identification = nil
 | 
| 
bsw@836
 | 
    42   end
 | 
| 
bsw@836
 | 
    43 end
 | 
| 
bsw@836
 | 
    44 member.identification = identification
 | 
| 
bsw/jbe@0
 | 
    45 
 | 
| 
bsw/jbe@0
 | 
    46 local err = member:try_save()
 | 
| 
bsw/jbe@0
 | 
    47 
 | 
| 
bsw/jbe@0
 | 
    48 if err then
 | 
| 
bsw/jbe@0
 | 
    49   slot.put_into("error", (_("Error while updating member, database reported:<br /><br /> (#{errormessage})"):gsub("#{errormessage}", tostring(err.message))))
 | 
| 
bsw/jbe@0
 | 
    50   return false
 | 
| 
bsw@357
 | 
    51 end
 | 
| 
bsw@357
 | 
    52 
 | 
| 
bsw@357
 | 
    53 if not id and config.single_unit_id then
 | 
| 
bsw@357
 | 
    54   local privilege = Privilege:new()
 | 
| 
bsw@357
 | 
    55   privilege.member_id = member.id
 | 
| 
bsw@357
 | 
    56   privilege.unit_id = config.single_unit_id
 | 
| 
bsw/jbe@1309
 | 
    57   privilege.initiative_right = true
 | 
| 
bsw@357
 | 
    58   privilege.voting_right = true
 | 
| 
bsw@359
 | 
    59   privilege:save()
 | 
| 
bsw@357
 | 
    60 end
 | 
| 
bsw@357
 | 
    61 
 | 
| 
bsw/jbe@1309
 | 
    62 if not id then
 | 
| 
bsw/jbe@1309
 | 
    63   local profile = MemberProfile:new()
 | 
| 
bsw/jbe@1309
 | 
    64   profile.member_id = member.id
 | 
| 
bsw/jbe@1309
 | 
    65   profile.profile = json.object()
 | 
| 
bsw/jbe@1309
 | 
    66   profile:save()
 | 
| 
bsw/jbe@1309
 | 
    67 end
 | 
| 
bsw/jbe@1309
 | 
    68 
 | 
| 
bsw@512
 | 
    69 local units = Unit:new_selector()
 | 
| 
bsw@512
 | 
    70   :add_field("privilege.member_id NOTNULL", "privilege_exists")
 | 
| 
bsw@512
 | 
    71   :add_field("privilege.voting_right", "voting_right")
 | 
| 
bsw@512
 | 
    72   :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", member.id })
 | 
| 
bsw@512
 | 
    73   :exec()
 | 
| 
bsw@512
 | 
    74 
 | 
| 
bsw@512
 | 
    75 for i, unit in ipairs(units) do
 | 
| 
bsw@512
 | 
    76   local value = param.get("unit_" .. unit.id, atom.boolean)
 | 
| 
bsw@512
 | 
    77   if value and not unit.privilege_exists then
 | 
| 
bsw@1187
 | 
    78     local privilege = Privilege:new()
 | 
| 
bsw@512
 | 
    79     privilege.unit_id = unit.id
 | 
| 
bsw@512
 | 
    80     privilege.member_id = member.id
 | 
| 
bsw@512
 | 
    81     privilege.voting_right = true
 | 
| 
bsw@512
 | 
    82     privilege:save()
 | 
| 
bsw@512
 | 
    83   elseif not value and unit.privilege_exists then
 | 
| 
bsw@512
 | 
    84     local privilege = Privilege:by_pk(unit.id, member.id)
 | 
| 
bsw@512
 | 
    85     privilege:destroy()
 | 
| 
bsw@512
 | 
    86   end
 | 
| 
bsw@512
 | 
    87 end
 | 
| 
bsw@512
 | 
    88 
 | 
| 
bsw@581
 | 
    89 if not member.activated and param.get("invite_member", atom.boolean) then
 | 
| 
bsw@581
 | 
    90   member:send_invitation()
 | 
| 
bsw@581
 | 
    91 end
 | 
| 
bsw@581
 | 
    92 
 | 
| 
bsw@357
 | 
    93 if id then
 | 
| 
bsw@357
 | 
    94   slot.put_into("notice", _"Member successfully updated")
 | 
| 
bsw/jbe@0
 | 
    95 else
 | 
| 
bsw@357
 | 
    96   slot.put_into("notice", _"Member successfully registered")
 | 
| 
bsw@244
 | 
    97 end
 |