11from conditional import ldap
22from 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