Skip to content

Commit a3bb580

Browse files
committed
more sane ldap queries
1 parent dadb28a commit a3bb580

File tree

1 file changed

+3
-12
lines changed

1 file changed

+3
-12
lines changed

conditional/util/ldap.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ def _ldap_get_group_members(group: str) -> list[CSHMember]:
99

1010

1111
def _ldap_is_member_of_group(member: CSHMember, group: str) -> bool:
12-
group_list = member.get("memberOf")
13-
for group_dn in group_list:
14-
if group == group_dn.split(",")[0][3:]:
15-
return True
16-
return False
12+
return ldap.get_group(group).check_member(member)
1713

1814

1915
def _ldap_add_member_to_group(account: CSHMember, group: str):
@@ -28,18 +24,13 @@ def _ldap_remove_member_from_group(account: CSHMember, group: str):
2824

2925
@service_cache(maxsize=256)
3026
def _ldap_is_member_of_directorship(account: CSHMember, directorship: str):
31-
directors = ldap.get_directorship_heads(directorship)
32-
for director in directors:
33-
if director.uid == account.uid:
34-
return True
35-
return False
36-
27+
return account.in_group(f'eboard-{directorship}', dn=True)
28+
# TODO: try in_group(ldap.get_group(f'eboard-{directorship}')) and profile
3729

3830
@service_cache(maxsize=1024)
3931
def ldap_get_member(username: str) -> CSHMember:
4032
return ldap.get_member(username, uid=True)
4133

42-
4334
@service_cache(maxsize=1024)
4435
def ldap_get_active_members() -> list[CSHMember]:
4536
return _ldap_get_group_members("active")

0 commit comments

Comments
 (0)