liquid_feedback_frontend
view env/ldap/update_all_members.lua @ 1693:f6ce58146d40
Added public only MOTD
author | bsw |
---|---|
date | Wed Sep 22 18:28:37 2021 +0200 (2021-09-22) |
parents | 45287f1037fb |
children |
line source
1 -- check for all LiquidFeedback Members with LDAP authentication
2 -- if the corresponding LDAP entry is still existent and updates
3 -- changed attributes
4 -- --------------------------------------------------------------------------
5 -- prints debug output to stdout
6 --
7 -- returns
8 -- success: true if no error occured during run
9 -- false if at least one error occured during run
11 function ldap.update_all_members()
13 local some_error_occured = false
15 local ldap_conn = ldap.bind_as_app()
17 local function update_member(member)
19 local function failure (err, err2)
20 Member.get_db_conn():query("ROLLBACK")
21 io.stdout:write("ERROR: ", err, " (", err2, ") id=", tostring(member.id), " uid=", tostring(member.authority_uid), "\n")
22 some_error_occured = true
23 end
25 local function success ()
26 Member.get_db_conn():query("COMMIT")
27 io.stdout:write("ok: id=", tostring(member.id), " uid=", tostring(member.authority_uid), "\n")
28 end
30 Member.get_db_conn():query("BEGIN")
32 local ldap_conn, ldap_entry, err, err2 = ldap.update_member_attr(member, ldap_conn)
33 if err then
34 failure("ldap_update_member", err)
35 return
36 end
38 ldap.update_member_allowed(member, ldap_entry)
40 local err = member:try_save()
41 if err then
42 failure("member_try_save", err)
43 return
44 end
46 if ldap_entry then
47 local success, err, err2 = ldap.update_member_privileges(member, ldap_entry)
48 if err then
49 failure("ldap_update_member_privileges", err)
50 return
51 end
53 end
55 success()
57 end
60 local members = Member:get_all_by_authority("ldap")
62 for i, member in ipairs(members) do
63 update_member(member)
64 end
66 ldap_conn:unbind()
68 return not some_error_occured
70 end