11from functools import lru_cache
22
3- import ldap
4-
53from packet import _ldap
64
75
6+ @lru_cache (maxsize = 1024 )
87def _ldap_get_group_members (group ):
98 return _ldap .get_group (group ).get_members ()
109
1110
11+ @lru_cache (maxsize = 2048 )
1212def _ldap_is_member_of_group (member , group ):
1313 group_list = member .get ("memberOf" )
1414 for group_dn in group_list :
@@ -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,51 @@ def ldap_get_live_onfloor():
10181 members .append (member )
10282 return members
10383
84+
10485# Status checkers
10586
87+ @lru_cache (maxsize = 1024 )
88+ def ldap_is_eval_director (account ):
89+ return _ldap_is_member_of_directorship (account , 'evaluations' )
90+
91+
92+ @lru_cache (maxsize = 1024 )
10693def ldap_is_active (account ):
10794 return _ldap_is_member_of_group (account , 'active' )
10895
10996
97+ @lru_cache (maxsize = 1024 )
11098def ldap_is_alumni (account ):
11199 # If the user is not active, they are an alumni.
112100 return not _ldap_is_member_of_group (account , 'active' )
113101
114102
103+ @lru_cache (maxsize = 1024 )
115104def ldap_is_eboard (account ):
116105 return _ldap_is_member_of_group (account , 'eboard' )
117106
118107
108+ @lru_cache (maxsize = 1024 )
119109def ldap_is_rtp (account ):
120110 return _ldap_is_member_of_group (account , 'rtp' )
121111
122112
113+ @lru_cache (maxsize = 1024 )
123114def ldap_is_intromember (account ):
124115 return _ldap_is_member_of_group (account , 'intromembers' )
125116
126117
118+ @lru_cache (maxsize = 1024 )
127119def ldap_is_onfloor (account ):
128120 return _ldap_is_member_of_group (account , 'onfloor' )
129121
130122
123+ @lru_cache (maxsize = 1024 )
131124def ldap_is_current_student (account ):
132125 return _ldap_is_member_of_group (account , 'current_student' )
133126
134127
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-
128+ @lru_cache (maxsize = 1024 )
165129def ldap_get_roomnumber (account ):
166130 try :
167131 return account .roomNumber
0 commit comments