99
1010from . import app , db
1111from .models import Freshman , Packet , FreshSignature , UpperSignature , MiscSignature
12- from .ldap import ldap_get_eboard , ldap_get_active_members
12+ from .ldap import ldap_get_active_members , ldap_is_eboard , ldap_is_intromember
1313
1414
1515@app .cli .command ("create-secret" )
@@ -113,8 +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- all_upper = set (member .uid for member in ldap_get_active_members ())
116+ all_upper = list (filter (lambda member : not ldap_is_intromember (member ), ldap_get_active_members ()))
118117
119118 # Create the new packets and the signatures for each freshman in the given CSV
120119 freshmen_in_csv = parse_csv (freshmen_csv )
@@ -124,7 +123,7 @@ def create_packets(freshmen_csv):
124123 db .session .add (packet )
125124
126125 for member in all_upper :
127- 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 ) ))
128127
129128 for onfloor_freshman in Freshman .query .filter_by (onfloor = True ).filter (Freshman .rit_username !=
130129 freshman .rit_username ).all ():
@@ -140,14 +139,13 @@ def ldap_sync():
140139 Updates the upper and misc sigs in the DB to match ldap.
141140 """
142141 print ("Fetching data from LDAP..." )
143- eboard = set (member .uid for member in ldap_get_eboard ())
144- all_upper = set (member .uid for member in ldap_get_active_members ())
142+ all_upper = {member .uid : member for member in filter (lambda member : not ldap_is_intromember (member ), ldap_get_active_members ())}
145143
146144 print ("Applying updates to the DB..." )
147145 for packet in Packet .query .filter (Packet .end > datetime .now ()).all ():
148146 # Update the eboard state of all UpperSignatures
149147 for sig in packet .upper_signatures :
150- sig .eboard = sig .member in eboard
148+ sig .eboard = ldap_is_eboard ( all_upper [ sig .member ])
151149
152150 # Migrate UpperSignatures that are from accounts that are not active anymore
153151 for sig in filter (lambda sig : sig .member not in all_upper , packet .upper_signatures ):
@@ -164,7 +162,7 @@ def ldap_sync():
164162 # pylint: disable=cell-var-from-loop
165163 upper_sigs = set (map (lambda sig : sig .member , packet .upper_signatures ))
166164 for member in filter (lambda member : member not in upper_sigs , all_upper ):
167- db .session .add (UpperSignature (packet = packet , member = member , eboard = member in eboard ))
165+ db .session .add (UpperSignature (packet = packet , member = member , eboard = ldap_is_eboard ( all_upper [ member ] ))
168166
169167 db .session .commit ()
170168 print ("Done!" )
0 commit comments