Skip to content

Commit dadb28a

Browse files
committed
add type hints to ldap.py
1 parent 8acb490 commit dadb28a

File tree

1 file changed

+24
-22
lines changed

1 file changed

+24
-22
lines changed

conditional/util/ldap.py

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
from conditional import ldap
22
from conditional.util.cache import service_cache
33

4+
from csh_ldap import CSHGroup, CSHMember
45

5-
def _ldap_get_group_members(group):
6+
7+
def _ldap_get_group_members(group: str) -> list[CSHMember]:
68
return ldap.get_group(group).get_members()
79

810

9-
def _ldap_is_member_of_group(member, group):
11+
def _ldap_is_member_of_group(member: CSHMember, group: str) -> bool:
1012
group_list = member.get("memberOf")
1113
for group_dn in group_list:
1214
if group == group_dn.split(",")[0][3:]:
1315
return True
1416
return False
1517

1618

17-
def _ldap_add_member_to_group(account, group):
19+
def _ldap_add_member_to_group(account: CSHMember, group: str):
1820
if not _ldap_is_member_of_group(account, group):
1921
ldap.get_group(group).add_member(account, dn=False)
2022

2123

22-
def _ldap_remove_member_from_group(account, group):
24+
def _ldap_remove_member_from_group(account: CSHMember, group: str):
2325
if _ldap_is_member_of_group(account, group):
2426
ldap.get_group(group).del_member(account, dn=False)
2527

2628

2729
@service_cache(maxsize=256)
28-
def _ldap_is_member_of_directorship(account, directorship):
30+
def _ldap_is_member_of_directorship(account: CSHMember, directorship: str):
2931
directors = ldap.get_directorship_heads(directorship)
3032
for director in directors:
3133
if director.uid == account.uid:
@@ -34,90 +36,90 @@ def _ldap_is_member_of_directorship(account, directorship):
3436

3537

3638
@service_cache(maxsize=1024)
37-
def ldap_get_member(username):
39+
def ldap_get_member(username: str) -> CSHMember:
3840
return ldap.get_member(username, uid=True)
3941

4042

4143
@service_cache(maxsize=1024)
42-
def ldap_get_active_members():
44+
def ldap_get_active_members() -> list[CSHMember]:
4345
return _ldap_get_group_members("active")
4446

4547

4648
@service_cache(maxsize=1024)
47-
def ldap_get_intro_members():
49+
def ldap_get_intro_members() -> list[CSHMember]:
4850
return _ldap_get_group_members("intromembers")
4951

5052

5153
@service_cache(maxsize=1024)
52-
def ldap_get_onfloor_members():
54+
def ldap_get_onfloor_members() -> list[CSHMember]:
5355
return _ldap_get_group_members("onfloor")
5456

5557

5658
@service_cache(maxsize=1024)
57-
def ldap_get_current_students():
59+
def ldap_get_current_students() -> list[CSHMember]:
5860
return _ldap_get_group_members("current_student")
5961

6062

6163
@service_cache(maxsize=128)
62-
def ldap_get_roomnumber(account):
64+
def ldap_get_roomnumber(account) -> str:
6365
try:
6466
return account.roomNumber
6567
except AttributeError:
6668
return ""
6769

6870

6971
@service_cache(maxsize=128)
70-
def ldap_is_active(account):
72+
def ldap_is_active(account) -> bool:
7173
return _ldap_is_member_of_group(account, 'active')
7274

7375

7476
@service_cache(maxsize=128)
75-
def ldap_is_bad_standing(account):
77+
def ldap_is_bad_standing(account) -> bool:
7678
return _ldap_is_member_of_group(account, 'bad_standing')
7779

7880

7981
@service_cache(maxsize=128)
80-
def ldap_is_alumni(account):
82+
def ldap_is_alumni(account) -> bool:
8183
# If the user is not active, they are an alumni.
8284
return not _ldap_is_member_of_group(account, 'active')
8385

8486

8587
@service_cache(maxsize=128)
86-
def ldap_is_eboard(account):
88+
def ldap_is_eboard(account) -> bool:
8789
return _ldap_is_member_of_group(account, 'eboard')
8890

8991

9092
@service_cache(maxsize=128)
91-
def ldap_is_rtp(account):
93+
def ldap_is_rtp(account) -> bool:
9294
return _ldap_is_member_of_group(account, 'rtp')
9395

9496

9597
@service_cache(maxsize=128)
96-
def ldap_is_intromember(account):
98+
def ldap_is_intromember(account) -> bool:
9799
return _ldap_is_member_of_group(account, 'intromembers')
98100

99101

100102
@service_cache(maxsize=128)
101-
def ldap_is_onfloor(account):
103+
def ldap_is_onfloor(account) -> bool:
102104
return _ldap_is_member_of_group(account, 'onfloor')
103105

104106

105107
@service_cache(maxsize=128)
106-
def ldap_is_financial_director(account):
108+
def ldap_is_financial_director(account) -> bool:
107109
return _ldap_is_member_of_directorship(account, 'Financial')
108110

109111

110112
@service_cache(maxsize=128)
111-
def ldap_is_eval_director(account):
113+
def ldap_is_eval_director(account) -> bool:
112114
return _ldap_is_member_of_directorship(account, 'Evaluations')
113115

114116

115117
@service_cache(maxsize=256)
116-
def ldap_is_current_student(account):
118+
def ldap_is_current_student(account) -> bool:
117119
return _ldap_is_member_of_group(account, 'current_student')
118120

119121

120-
def ldap_set_housingpoints(account, housing_points):
122+
def ldap_set_housingpoints(account, housing_points) -> bool:
121123
account.housingPoints = housing_points
122124
ldap_get_current_students.cache_clear()
123125
ldap_get_member.cache_clear()

0 commit comments

Comments
 (0)