11from functools import lru_cache
22
3- import ldap
4-
53from packet import _ldap
64
75
6+ @lru_cache (maxsize = 4096 )
87def _ldap_get_group_members (group ):
98 return _ldap .get_group (group ).get_members ()
109
1110
11+ @lru_cache (maxsize = 4096 )
1212def _ldap_is_member_of_group (member , group ):
1313 group_list = member .get ("memberOf" )
1414 for group_dn in group_list :
@@ -17,7 +17,7 @@ def _ldap_is_member_of_group(member, group):
1717 return False
1818
1919
20- @lru_cache (maxsize = 1024 )
20+ @lru_cache (maxsize = 2048 )
2121def _ldap_is_member_of_directorship (account , directorship ):
2222 directors = _ldap .get_directorship_heads (directorship )
2323 for director in directors :
@@ -48,16 +48,6 @@ def ldap_get_onfloor_members():
4848 return _ldap_get_group_members ("onfloor" )
4949
5050
51- @lru_cache (maxsize = 1024 )
52- def ldap_get_current_students ():
53- return _ldap_get_group_members ("current_student" )
54-
55-
56- @lru_cache (maxsize = 1024 )
57- def ldap_get_all_members ():
58- return _ldap_get_group_members ("member" )
59-
60-
6151@lru_cache (maxsize = 1024 )
6252def ldap_get_groups (account ):
6353 group_list = account .get ("memberOf" )
@@ -68,17 +58,6 @@ def ldap_get_groups(account):
6858 return groups
6959
7060
71- @lru_cache (maxsize = 1024 )
72- def ldap_get_group_desc (group ):
73- con = _ldap .get_con ()
74- results = con .search_s (
75- "cn=groups,cn=accounts,dc=csh,dc=rit,dc=edu" ,
76- ldap .SCOPE_SUBTREE ,
77- "(cn=%s)" % group ,
78- ['description' ])
79- return results [0 ][1 ]['description' ][0 ].decode ('utf-8' )
80-
81-
8261@lru_cache (maxsize = 1024 )
8362def ldap_get_eboard ():
8463 members = _ldap_get_group_members ("eboard-chairman" ) + _ldap_get_group_members ("eboard-evaluations"
@@ -90,6 +69,7 @@ def ldap_get_eboard():
9069 return members
9170
9271
72+ @lru_cache (maxsize = 2048 )
9373def ldap_get_live_onfloor ():
9474 """
9575 :return: All upperclassmen who live on floor and are not eboard
@@ -101,67 +81,46 @@ def ldap_get_live_onfloor():
10181 members .append (member )
10282 return members
10383
84+
10485# Status checkers
10586
87+ @lru_cache (maxsize = 1024 )
10688def ldap_is_active (account ):
10789 return _ldap_is_member_of_group (account , 'active' )
10890
10991
92+ @lru_cache (maxsize = 1024 )
11093def ldap_is_alumni (account ):
11194 # If the user is not active, they are an alumni.
11295 return not _ldap_is_member_of_group (account , 'active' )
11396
11497
98+ @lru_cache (maxsize = 1024 )
11599def ldap_is_eboard (account ):
116100 return _ldap_is_member_of_group (account , 'eboard' )
117101
118102
103+ @lru_cache (maxsize = 1024 )
119104def ldap_is_rtp (account ):
120105 return _ldap_is_member_of_group (account , 'rtp' )
121106
122107
108+ @lru_cache (maxsize = 1024 )
123109def ldap_is_intromember (account ):
124110 return _ldap_is_member_of_group (account , 'intromembers' )
125111
126112
113+ @lru_cache (maxsize = 1024 )
127114def ldap_is_onfloor (account ):
128115 return _ldap_is_member_of_group (account , 'onfloor' )
129116
130117
118+ @lru_cache (maxsize = 1024 )
131119def ldap_is_current_student (account ):
132120 return _ldap_is_member_of_group (account , 'current_student' )
133121
134122
135- # Directorships
136-
137- def ldap_is_financial_director (account ):
138- return _ldap_is_member_of_directorship (account , 'financial' )
139-
140-
141- def ldap_is_eval_director (account ):
142- return _ldap_is_member_of_directorship (account , 'evaluations' )
143-
144-
145- def ldap_is_chairman (account ):
146- return _ldap_is_member_of_directorship (account , 'chairman' )
147-
148-
149- def ldap_is_history (account ):
150- return _ldap_is_member_of_directorship (account , 'history' )
151-
152-
153- def ldap_is_imps (account ):
154- return _ldap_is_member_of_directorship (account , 'imps' )
155-
156-
157- def ldap_is_social (account ):
158- return _ldap_is_member_of_directorship (account , 'Social' )
159-
160-
161- def ldap_is_rd (account ):
162- return _ldap_is_member_of_directorship (account , 'research' )
163-
164-
123+ @lru_cache (maxsize = 1024 )
165124def ldap_get_roomnumber (account ):
166125 try :
167126 return account .roomNumber
0 commit comments