11
11
from conditional .util .ldap import ldap_get_member
12
12
from conditional .util .ldap import ldap_get_roomnumber
13
13
from conditional .util .ldap import ldap_get_current_students
14
+ from conditional .util .ldap import _ldap_add_member_to_group as ldap_add_member_to_group
14
15
15
16
from conditional .util .flask import render_template
16
17
@@ -118,6 +119,8 @@ def change_room_numbers(rmnumber):
118
119
account = ldap_get_member (occupant )
119
120
account .roomNumber = rmnumber
120
121
log .info ('api' , action = '%s assigned to room %s' % (occupant , rmnumber ))
122
+ ldap_add_member_to_group (account , "active" )
123
+ log .info ('api' , action = '%s marked as active because of room assignment' % occupant )
121
124
# Delete any old occupants that are no longer in room.
122
125
for old_occupant in [account for account in current_students
123
126
if ldap_get_roomnumber (account ) == str (rmnumber )
@@ -138,3 +141,24 @@ def get_occupants(rmnumber):
138
141
occupants = [account .uid for account in current_students
139
142
if ldap_get_roomnumber (account ) == str (rmnumber )]
140
143
return jsonify ({"room" : rmnumber , "occupants" : occupants }), 200
144
+
145
+
146
+ @housing_bp .route ('/housing' , methods = ['DELETE' ])
147
+ def clear_all_rooms ():
148
+ log = logger .new (user_name = request .headers .get ("x-webauth-user" ),
149
+ request_id = str (uuid .uuid4 ()))
150
+ log .info ('api' , action = 'clear all room numbers' )
151
+
152
+ username = request .headers .get ('x-webauth-user' )
153
+ account = ldap_get_member (username )
154
+
155
+ if not ldap_is_eval_director (account ):
156
+ return "must be eval director" , 403
157
+ # Get list of current students.
158
+ current_students = ldap_get_current_students ()
159
+
160
+ # Find the current occupants and clear them.
161
+ for occupant in current_students :
162
+ log .info ('api' , action = 'remove room %s from %s' % (occupant .roomNumber , occupant .uid ))
163
+ occupant .roomNumber = None
164
+ return jsonify ({"success" : True }), 200
0 commit comments