1
1
from functools import lru_cache
2
2
3
- import ldap
4
-
5
3
from packet import _ldap
6
4
7
5
6
+ @lru_cache (maxsize = 1024 )
8
7
def _ldap_get_group_members (group ):
9
8
return _ldap .get_group (group ).get_members ()
10
9
11
10
11
+ @lru_cache (maxsize = 2048 )
12
12
def _ldap_is_member_of_group (member , group ):
13
13
group_list = member .get ("memberOf" )
14
14
for group_dn in group_list :
@@ -48,16 +48,6 @@ def ldap_get_onfloor_members():
48
48
return _ldap_get_group_members ("onfloor" )
49
49
50
50
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
-
61
51
@lru_cache (maxsize = 1024 )
62
52
def ldap_get_groups (account ):
63
53
group_list = account .get ("memberOf" )
@@ -68,17 +58,6 @@ def ldap_get_groups(account):
68
58
return groups
69
59
70
60
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
-
82
61
@lru_cache (maxsize = 1024 )
83
62
def ldap_get_eboard ():
84
63
members = _ldap_get_group_members ("eboard-chairman" ) + _ldap_get_group_members ("eboard-evaluations"
@@ -90,6 +69,7 @@ def ldap_get_eboard():
90
69
return members
91
70
92
71
72
+ @lru_cache (maxsize = 2048 )
93
73
def ldap_get_live_onfloor ():
94
74
"""
95
75
:return: All upperclassmen who live on floor and are not eboard
@@ -101,67 +81,51 @@ def ldap_get_live_onfloor():
101
81
members .append (member )
102
82
return members
103
83
84
+
104
85
# Status checkers
105
86
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 )
106
93
def ldap_is_active (account ):
107
94
return _ldap_is_member_of_group (account , 'active' )
108
95
109
96
97
+ @lru_cache (maxsize = 1024 )
110
98
def ldap_is_alumni (account ):
111
99
# If the user is not active, they are an alumni.
112
100
return not _ldap_is_member_of_group (account , 'active' )
113
101
114
102
103
+ @lru_cache (maxsize = 1024 )
115
104
def ldap_is_eboard (account ):
116
105
return _ldap_is_member_of_group (account , 'eboard' )
117
106
118
107
108
+ @lru_cache (maxsize = 1024 )
119
109
def ldap_is_rtp (account ):
120
110
return _ldap_is_member_of_group (account , 'rtp' )
121
111
122
112
113
+ @lru_cache (maxsize = 1024 )
123
114
def ldap_is_intromember (account ):
124
115
return _ldap_is_member_of_group (account , 'intromembers' )
125
116
126
117
118
+ @lru_cache (maxsize = 1024 )
127
119
def ldap_is_onfloor (account ):
128
120
return _ldap_is_member_of_group (account , 'onfloor' )
129
121
130
122
123
+ @lru_cache (maxsize = 1024 )
131
124
def ldap_is_current_student (account ):
132
125
return _ldap_is_member_of_group (account , 'current_student' )
133
126
134
127
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 )
165
129
def ldap_get_roomnumber (account ):
166
130
try :
167
131
return account .roomNumber
0 commit comments