bsw@357: local id = param.get_id() bsw/jbe@0: bsw@357: local member = Member:by_id(id) or Member:new() bsw/jbe@0: bsw@584: param.update(member, "identification", "notify_email", "admin") bsw@584: bsw@584: local locked = param.get("locked", atom.boolean) bsw@589: if locked ~= nil then bsw@584: member.locked = locked bsw@584: end bsw@590: local deactivate = param.get("deactivate", atom.boolean) bsw@590: if deactivate then bsw@590: member.active = false bsw@590: end bsw@584: local login = param.get("login") bsw@584: if login then bsw@584: member.login = login bsw@584: end bsw@584: local name = param.get("name") bsw@584: if name then bsw@584: member.name = name bsw@584: end bsw@836: local identification = param.get("identification") bsw@836: if identification then bsw@836: identification = util.trim(identification) bsw@836: if identification == "" then bsw@836: identification = nil bsw@836: end bsw@836: end bsw@836: member.identification = identification bsw/jbe@0: bsw/jbe@0: local err = member:try_save() bsw/jbe@0: bsw/jbe@0: if err then bsw/jbe@0: slot.put_into("error", (_("Error while updating member, database reported:

(#{errormessage})"):gsub("#{errormessage}", tostring(err.message)))) bsw/jbe@0: return false bsw@357: end bsw@357: bsw@357: if not id and config.single_unit_id then bsw@357: local privilege = Privilege:new() bsw@357: privilege.member_id = member.id bsw@357: privilege.unit_id = config.single_unit_id bsw@357: privilege.voting_right = true bsw@359: privilege:save() bsw@357: end bsw@357: bsw@512: local units = Unit:new_selector() bsw@512: :add_field("privilege.member_id NOTNULL", "privilege_exists") bsw@512: :add_field("privilege.voting_right", "voting_right") bsw@512: :left_join("privilege", nil, { "privilege.member_id = ? AND privilege.unit_id = unit.id", member.id }) bsw@512: :exec() bsw@512: bsw@512: for i, unit in ipairs(units) do bsw@512: local value = param.get("unit_" .. unit.id, atom.boolean) bsw@512: if value and not unit.privilege_exists then bsw@512: privilege = Privilege:new() bsw@512: privilege.unit_id = unit.id bsw@512: privilege.member_id = member.id bsw@512: privilege.voting_right = true bsw@512: privilege:save() bsw@512: elseif not value and unit.privilege_exists then bsw@512: local privilege = Privilege:by_pk(unit.id, member.id) bsw@512: privilege:destroy() bsw@512: end bsw@512: end bsw@512: bsw@581: if not member.activated and param.get("invite_member", atom.boolean) then bsw@581: member:send_invitation() bsw@581: end bsw@581: bsw@357: if id then bsw@357: slot.put_into("notice", _"Member successfully updated") bsw/jbe@0: else bsw@357: slot.put_into("notice", _"Member successfully registered") bsw@244: end