99
1010from . import app , db
1111from .models import Freshman , Packet , FreshSignature , UpperSignature , MiscSignature
12- from .ldap import ldap_get_eboard , ldap_get_live_onfloor
12+ from .ldap import ldap_get_active_members , ldap_is_eboard , ldap_is_intromember
1313
1414
1515@app .cli .command ("create-secret" )
@@ -113,9 +113,7 @@ def create_packets(freshmen_csv):
113113 end = datetime .combine (base_date , packet_end_time ) + timedelta (days = 14 )
114114
115115 print ("Fetching data from LDAP..." )
116- eboard = set (member .uid for member in ldap_get_eboard ())
117- onfloor = set (member .uid for member in ldap_get_live_onfloor ())
118- all_upper = eboard .union (onfloor )
116+ all_upper = list (filter (lambda member : not ldap_is_intromember (member ), ldap_get_active_members ()))
119117
120118 # Create the new packets and the signatures for each freshman in the given CSV
121119 freshmen_in_csv = parse_csv (freshmen_csv )
@@ -125,7 +123,7 @@ def create_packets(freshmen_csv):
125123 db .session .add (packet )
126124
127125 for member in all_upper :
128- db .session .add (UpperSignature (packet = packet , member = member , eboard = member in eboard ))
126+ db .session .add (UpperSignature (packet = packet , member = member . uid , eboard = ldap_is_eboard ( member ) ))
129127
130128 for onfloor_freshman in Freshman .query .filter_by (onfloor = True ).filter (Freshman .rit_username !=
131129 freshman .rit_username ).all ():
@@ -141,32 +139,32 @@ def ldap_sync():
141139 Updates the upper and misc sigs in the DB to match ldap.
142140 """
143141 print ("Fetching data from LDAP..." )
144- eboard = set (member .uid for member in ldap_get_eboard ())
145- onfloor = set (member .uid for member in ldap_get_live_onfloor ())
146- all_upper = eboard .union (onfloor )
142+ all_upper = {member .uid : member for member in filter (lambda member : not ldap_is_intromember (member ),
143+ ldap_get_active_members ())}
147144
148145 print ("Applying updates to the DB..." )
149146 for packet in Packet .query .filter (Packet .end > datetime .now ()).all ():
150147 # Update the eboard state of all UpperSignatures
151- for sig in packet .upper_signatures :
152- sig .eboard = sig .member in eboard
148+ for sig in filter ( lambda sig : sig . member in all_upper , packet .upper_signatures ) :
149+ sig .eboard = ldap_is_eboard ( all_upper [ sig .member ])
153150
154- # Migrate UpperSignatures that are from accounts that are not eboard or onfloor anymore
151+ # Migrate UpperSignatures that are from accounts that are not active anymore
155152 for sig in filter (lambda sig : sig .member not in all_upper , packet .upper_signatures ):
156153 UpperSignature .query .filter_by (packet_id = packet .id , member = sig .member ).delete ()
157154 if sig .signed :
158155 db .session .add (MiscSignature (packet = packet , member = sig .member ))
159156
160- # Migrate MiscSignatures that are from accounts that are now eboard or onfloor members
157+ # Migrate MiscSignatures that are from accounts that are now active members
161158 for sig in filter (lambda sig : sig .member in all_upper , packet .misc_signatures ):
162159 MiscSignature .query .filter_by (packet_id = packet .id , member = sig .member ).delete ()
163- db .session .add (UpperSignature (packet = packet , member = sig .member , eboard = sig .member in eboard , signed = True ))
160+ db .session .add (UpperSignature (packet = packet , member = sig .member ,
161+ eboard = ldap_is_eboard (all_upper [sig .member ]), signed = True ))
164162
165- # Create UpperSignatures for any new eboard or onfloor members
163+ # Create UpperSignatures for any new active members
166164 # pylint: disable=cell-var-from-loop
167165 upper_sigs = set (map (lambda sig : sig .member , packet .upper_signatures ))
168166 for member in filter (lambda member : member not in upper_sigs , all_upper ):
169- db .session .add (UpperSignature (packet = packet , member = member , eboard = member in eboard ))
167+ db .session .add (UpperSignature (packet = packet , member = member , eboard = ldap_is_eboard ( all_upper [ member ]) ))
170168
171169 db .session .commit ()
172170 print ("Done!" )
0 commit comments