liquid_feedback_frontend

annotate env/ldap/update_member_privileges.lua @ 1800:b87997219042

Updated spanish translation
author bsw
date Thu Oct 21 15:22:29 2021 +0200 (2021-10-21)
parents 58f48a8a202a
children
rev   line source
bsw@1071 1 -- Update member privileges from LDAP
bsw@1071 2 -- --------------------------------------------------------------------------
bsw@1071 3 --
bsw@1071 4 -- arguments:
bsw@1071 5 -- member: the member for which the privileges should be updated
bsw@1071 6 -- ldap_entry: the ldap entry to be used for updating the privileges
bsw@1071 7 --
bsw@1071 8 -- returns:
bsw@1071 9 -- err: an error code, if an error occured (string)
bsw@1071 10 -- err2: Error dependent extra error information
bsw@1071 11
bsw@1071 12 function ldap.update_member_privileges(member, ldap_entry)
bsw@1071 13
bsw@1071 14 local privileges, err = config.ldap.member.privilege_map(ldap_entry, member)
bsw@1071 15
bsw@1071 16 if err then
bsw@1071 17 return false, "privilege_map_error", err
bsw@1071 18 end
bsw@1071 19
bsw@1071 20 local privileges_by_unit_id = {}
bsw@1071 21 for i, privilege in ipairs(privileges) do
bsw@1071 22 privileges_by_unit_id[privilege.unit_id] = privilege
bsw@1071 23 end
bsw@1071 24
bsw@1071 25 local current_privileges = Privilege:by_member_id(member.id)
bsw@1071 26 local current_privilege_ids = {}
bsw@1071 27
bsw@1071 28 for i, privilege in ipairs(current_privileges) do
bsw@1071 29 if privileges_by_unit_id[privilege.unit_id] then
bsw@1071 30 current_privilege_ids[privilege.unit_id] = privilege
bsw@1071 31 else
bsw@1071 32 privilege:destroy()
bsw@1071 33 end
bsw@1071 34 end
bsw@1071 35
bsw@1071 36 for i, privilege in ipairs(privileges) do
bsw@1071 37 local current_privilege = current_privilege_ids[privilege.unit_id]
bsw@1071 38 if not current_privilege then
bsw@1071 39 current_privilege = Privilege:new()
bsw@1071 40 current_privilege.member_id = member.id
bsw@1071 41 current_privileges[#current_privileges+1] = current_privilege
bsw@1071 42 end
bsw@1071 43 for key, val in pairs(privilege) do
bsw@1071 44 current_privilege[key] = val
bsw@1071 45 end
bsw@1071 46 end
bsw@1071 47
bsw@1071 48 for i, privilege in ipairs(current_privileges) do
bsw@1071 49 local err = privilege:try_save()
bsw@1071 50 if err then
bsw@1071 51 return false, "privilege_save_error", err
bsw@1071 52 end
bsw@1071 53 end
bsw@1071 54
bsw@1071 55 return true
bsw@1071 56 end

Impressum / About Us