Skip to content

Commit fbdd139

Browse files
Update dependency versions (#393)
* I DID IT * Removed unnecessary commented lines, changed dockerfile to call ddtrace again * Bump python in CI * Fixed formatting for linting * More fstr fixes * Fixed more lint errors. There are some lint errors hat i just cant fix, like line length in some log statements, and too many args * Fixed more linter issues Part of doing this was that I removed 'bad-continuation' from the disable list in the .pylintrc bc the linting action said that option has been removed from pylint. I left it commented out for now to make sure the lint passes, but I can delete it entirely before this pr is merged assuming this fix passes the check * Removed commented line --------- Co-authored-by: Max Meinhold <[email protected]>
1 parent 1529cf0 commit fbdd139

21 files changed

+259
-233
lines changed

.github/workflows/python-app.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
strategy:
1717
matrix:
18-
python-version: [3.8, 3.9]
18+
python-version: [3.12]
1919

2020
steps:
2121
- name: Install ldap dependencies

.pylintrc

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ disable =
99
duplicate-code,
1010
no-member,
1111
parse-error,
12-
bad-continuation,
1312
too-few-public-methods,
1413
global-statement,
1514
cyclic-import,

Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM docker.io/python:3.8-buster
1+
FROM docker.io/python:3.12-bookworm
22
MAINTAINER Computer Science House <[email protected]>
33

44
RUN mkdir /opt/conditional
@@ -8,7 +8,7 @@ ADD requirements.txt /opt/conditional
88
WORKDIR /opt/conditional
99

1010
RUN apt-get -yq update && \
11-
apt-get -yq install libsasl2-dev libldap2-dev libssl-dev gcc g++ make && \
11+
apt-get -yq install libsasl2-dev libldap2-dev libldap-common libssl-dev gcc g++ make && \
1212
pip install -r requirements.txt && \
1313
apt-get -yq clean all
1414

conditional/__init__.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from flask_migrate import Migrate
88
from flask_gzip import Gzip
99
from flask_pyoidc.flask_pyoidc import OIDCAuthentication
10+
from flask_pyoidc.provider_configuration import ProviderConfiguration, ClientMetadata
1011
from flask_sqlalchemy import SQLAlchemy
1112

1213
import sentry_sdk
@@ -39,8 +40,10 @@
3940
app.config['LDAP_BIND_PW'],
4041
ro=app.config['LDAP_RO'])
4142

42-
auth = OIDCAuthentication(app, issuer=app.config["OIDC_ISSUER"],
43-
client_registration_info=app.config["OIDC_CLIENT_CONFIG"])
43+
client_metadata = ClientMetadata(app.config["OIDC_CLIENT_CONFIG"])
44+
provider_config = ProviderConfiguration(issuer=app.config["OIDC_ISSUER"], client_registration_info=client_metadata)
45+
46+
auth = OIDCAuthentication({'default': provider_config}, app)
4447

4548
app.secret_key = app.config["SECRET_KEY"]
4649

@@ -137,7 +140,7 @@ def static_proxy(path):
137140

138141

139142
@app.route('/')
140-
@auth.oidc_auth
143+
@auth.oidc_auth("default")
141144
def default_route():
142145
return redirect('/dashboard')
143146

@@ -158,10 +161,10 @@ def health():
158161

159162
@app.errorhandler(404)
160163
@app.errorhandler(500)
161-
@auth.oidc_auth
164+
@auth.oidc_auth("default")
162165
@get_user
163166
def route_errors(error, user_dict=None):
164-
data = dict()
167+
data = {}
165168

166169
# Handle the case where the header isn't present
167170
if user_dict['username'] is not None:

conditional/blueprints/attendance.py

+35-41
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030

3131
@attendance_bp.route('/attendance/ts_members')
32-
@auth.oidc_auth
32+
@auth.oidc_auth("default")
3333
@get_user
3434
def get_all_members(user_dict=None):
3535
log = logger.new(request=request, auth_dict=user_dict)
@@ -57,7 +57,7 @@ def get_all_members(user_dict=None):
5757

5858

5959
@attendance_bp.route('/attendance/hm_members')
60-
@auth.oidc_auth
60+
@auth.oidc_auth("default")
6161
@get_user
6262
def get_non_alumni_non_coop(internal=False, user_dict=None):
6363
log = logger.new(request=request, auth_dict=user_dict)
@@ -102,7 +102,7 @@ def get_non_alumni_non_coop(internal=False, user_dict=None):
102102

103103

104104
@attendance_bp.route('/attendance/cm_members')
105-
@auth.oidc_auth
105+
@auth.oidc_auth("default")
106106
@get_user
107107
def get_non_alumni(user_dict=None):
108108
log = logger.new(request=request, auth_dict=user_dict)
@@ -130,7 +130,7 @@ def get_non_alumni(user_dict=None):
130130

131131

132132
@attendance_bp.route('/attendance_cm')
133-
@auth.oidc_auth
133+
@auth.oidc_auth("default")
134134
@get_user
135135
def display_attendance_cm(user_dict=None):
136136
log = logger.new(request=request, auth_dict=user_dict)
@@ -142,7 +142,7 @@ def display_attendance_cm(user_dict=None):
142142

143143

144144
@attendance_bp.route('/attendance_ts')
145-
@auth.oidc_auth
145+
@auth.oidc_auth("default")
146146
@get_user
147147
def display_attendance_ts(user_dict=None):
148148
log = logger.new(request=request, auth_dict=user_dict)
@@ -154,7 +154,7 @@ def display_attendance_ts(user_dict=None):
154154

155155

156156
@attendance_bp.route('/attendance_hm')
157-
@auth.oidc_auth
157+
@auth.oidc_auth("default")
158158
@get_user
159159
def display_attendance_hm(user_dict=None):
160160
log = logger.new(request=request, auth_dict=user_dict)
@@ -170,7 +170,7 @@ def display_attendance_hm(user_dict=None):
170170

171171

172172
@attendance_bp.route('/attendance/submit/cm', methods=['POST'])
173-
@auth.oidc_auth
173+
@auth.oidc_auth("default")
174174
@get_user
175175
def submit_committee_attendance(user_dict=None):
176176
log = logger.new(request=request, auth_dict=user_dict)
@@ -183,7 +183,7 @@ def submit_committee_attendance(user_dict=None):
183183
f_attendees = post_data['freshmen']
184184
timestamp = post_data['timestamp']
185185

186-
log.info('Submit {} Meeting Attendance'.format(committee))
186+
log.info(f'Submit {committee} Meeting Attendance')
187187

188188
timestamp = datetime.strptime(timestamp, "%Y-%m-%d")
189189
meeting = CommitteeMeeting(committee, timestamp, approved)
@@ -193,19 +193,19 @@ def submit_committee_attendance(user_dict=None):
193193
db.session.refresh(meeting)
194194

195195
for m in m_attendees:
196-
log.info('Gave Attendance to {} for {}'.format(m, committee))
196+
log.info(f'Gave Attendance to {m} for {committee}')
197197
db.session.add(MemberCommitteeAttendance(m, meeting.id))
198198

199199
for f in f_attendees:
200-
log.info('Gave Attendance to freshman-{} for {}'.format(f, committee))
200+
log.info(f'Gave Attendance to freshman-{f} for {committee}')
201201
db.session.add(FreshmanCommitteeAttendance(f, meeting.id))
202202

203203
db.session.commit()
204204
return jsonify({"success": True}), 200
205205

206206

207207
@attendance_bp.route('/attendance/submit/ts', methods=['POST'])
208-
@auth.oidc_auth
208+
@auth.oidc_auth("default")
209209
@get_user
210210
def submit_seminar_attendance(user_dict=None):
211211
log = logger.new(request=request, auth_dict=user_dict)
@@ -228,19 +228,19 @@ def submit_seminar_attendance(user_dict=None):
228228
db.session.refresh(seminar)
229229

230230
for m in m_attendees:
231-
log.info('Gave Attendance to {} for {}'.format(m, seminar_name))
231+
log.info(f'Gave Attendance to {m} for {seminar_name}')
232232
db.session.add(MemberSeminarAttendance(m, seminar.id))
233233

234234
for f in f_attendees:
235-
log.info('Gave Attendance to freshman-{} for {}'.format(f, seminar_name))
235+
log.info(f'Gave Attendance to freshman-{f} for {seminar_name}')
236236
db.session.add(FreshmanSeminarAttendance(f, seminar.id))
237237

238238
db.session.commit()
239239
return jsonify({"success": True}), 200
240240

241241

242242
@attendance_bp.route('/attendance/submit/hm', methods=['POST'])
243-
@auth.oidc_auth
243+
@auth.oidc_auth("default")
244244
@get_user
245245
def submit_house_attendance(user_dict=None):
246246
log = logger.new(request=request, auth_dict=user_dict)
@@ -263,10 +263,7 @@ def submit_house_attendance(user_dict=None):
263263

264264
if "members" in post_data:
265265
for m in post_data['members']:
266-
log.info('Marked {} {} for House Meeting on {}'.format(
267-
m['uid'],
268-
m['status'],
269-
timestamp.strftime("%Y-%m-%d")))
266+
log.info(f'Marked {m['uid']} {m['status']} for House Meeting on {timestamp.strftime("%Y-%m-%d")}')
270267
db.session.add(MemberHouseMeetingAttendance(
271268
m['uid'],
272269
meeting.id,
@@ -275,10 +272,7 @@ def submit_house_attendance(user_dict=None):
275272

276273
if "freshmen" in post_data:
277274
for f in post_data['freshmen']:
278-
log.info('Marked freshman-{} {} for House Meeting on {}'.format(
279-
f['id'],
280-
f['status'],
281-
timestamp.strftime("%Y-%m-%d")))
275+
log.info(f'Marked freshman-{f['id']} {f['status']} for House Meeting on {timestamp.strftime("%Y-%m-%d")}')
282276
db.session.add(FreshmanHouseMeetingAttendance(
283277
f['id'],
284278
meeting.id,
@@ -290,7 +284,7 @@ def submit_house_attendance(user_dict=None):
290284

291285

292286
@attendance_bp.route('/attendance/alter/hm/<uid>/<hid>', methods=['GET'])
293-
@auth.oidc_auth
287+
@auth.oidc_auth("default")
294288
@get_user
295289
def alter_house_attendance(uid, hid, user_dict=None):
296290
log = logger.new(request=request, auth_dict=user_dict)
@@ -299,7 +293,7 @@ def alter_house_attendance(uid, hid, user_dict=None):
299293
return "must be evals", 403
300294

301295
if not uid.isdigit():
302-
log.info('Mark {} Present for House Meeting ID: {}'.format(uid, hid))
296+
log.info(f'Mark {uid} Present for House Meeting ID: {hid}')
303297
member_meeting = MemberHouseMeetingAttendance.query.filter(
304298
MemberHouseMeetingAttendance.uid == uid,
305299
MemberHouseMeetingAttendance.meeting_id == hid
@@ -308,7 +302,7 @@ def alter_house_attendance(uid, hid, user_dict=None):
308302
db.session.commit()
309303
return jsonify({"success": True}), 200
310304

311-
log.info('Mark freshman-{} Present for House Meeting ID: {}'.format(uid, hid))
305+
log.info(f'Mark freshman-{uid} Present for House Meeting ID: {hid}')
312306
freshman_meeting = FreshmanHouseMeetingAttendance.query.filter(
313307
FreshmanHouseMeetingAttendance.fid == uid,
314308
FreshmanHouseMeetingAttendance.meeting_id == hid
@@ -320,7 +314,7 @@ def alter_house_attendance(uid, hid, user_dict=None):
320314

321315

322316
@attendance_bp.route('/attendance/alter/hm/<uid>/<hid>', methods=['POST'])
323-
@auth.oidc_auth
317+
@auth.oidc_auth("default")
324318
@get_user
325319
def alter_house_excuse(uid, hid, user_dict=None):
326320
log = logger.new(request=request, auth_dict=user_dict)
@@ -333,7 +327,7 @@ def alter_house_excuse(uid, hid, user_dict=None):
333327
hm_excuse = post_data['excuse']
334328

335329
if not uid.isdigit():
336-
log.info('Mark {} as {} for HM ID: {}'.format(uid, hm_status, hid))
330+
log.info(f'Mark {uid} as {hm_status} for HM ID: {hid}')
337331
MemberHouseMeetingAttendance.query.filter(
338332
MemberHouseMeetingAttendance.uid == uid,
339333
MemberHouseMeetingAttendance.meeting_id == hid
@@ -342,7 +336,7 @@ def alter_house_excuse(uid, hid, user_dict=None):
342336
'attendance_status': hm_status
343337
})
344338
else:
345-
log.info('Mark {} as {} for HM ID: {}'.format(uid, hm_status, hid))
339+
log.info(f'Mark {uid} as {hm_status} for HM ID: {hid}')
346340
FreshmanHouseMeetingAttendance.query.filter(
347341
FreshmanHouseMeetingAttendance.fid == uid,
348342
FreshmanHouseMeetingAttendance.meeting_id == hid
@@ -357,7 +351,7 @@ def alter_house_excuse(uid, hid, user_dict=None):
357351

358352

359353
@attendance_bp.route('/attendance/history', methods=['GET'])
360-
@auth.oidc_auth
354+
@auth.oidc_auth("default")
361355
@get_user
362356
def attendance_history(user_dict=None):
363357

@@ -431,9 +425,9 @@ def get_seminar_attendees(meeting_id):
431425
TechnicalSeminar.approved == False).all()] # pylint: disable=singleton-comparison
432426
all_meetings = sorted((all_cm + all_ts), key=lambda k: k['dt_obj'], reverse=True)[offset:limit]
433427
if len(all_cm) % 10 != 0:
434-
total_pages = (int(len(all_cm) / 10) + 1)
428+
total_pages = int(len(all_cm) / 10) + 1
435429
else:
436-
total_pages = (int(len(all_cm) / 10))
430+
total_pages = int(len(all_cm) / 10)
437431
return render_template('attendance_history.html',
438432
username=user_dict['username'],
439433
history=all_meetings,
@@ -444,7 +438,7 @@ def get_seminar_attendees(meeting_id):
444438

445439

446440
@attendance_bp.route('/attendance/alter/cm/<cid>', methods=['POST'])
447-
@auth.oidc_auth
441+
@auth.oidc_auth("default")
448442
@get_user
449443
def alter_committee_attendance(cid, user_dict=None):
450444
log = logger.new(request=request, auth_dict=user_dict)
@@ -476,7 +470,7 @@ def alter_committee_attendance(cid, user_dict=None):
476470

477471

478472
@attendance_bp.route('/attendance/alter/ts/<sid>', methods=['POST'])
479-
@auth.oidc_auth
473+
@auth.oidc_auth("default")
480474
@get_user
481475
def alter_seminar_attendance(sid, user_dict=None):
482476
log = logger.new(request=request, auth_dict=user_dict)
@@ -508,7 +502,7 @@ def alter_seminar_attendance(sid, user_dict=None):
508502

509503

510504
@attendance_bp.route('/attendance/ts/<sid>', methods=['GET', 'DELETE'])
511-
@auth.oidc_auth
505+
@auth.oidc_auth("default")
512506
@get_user
513507
def get_cm_attendees(sid, user_dict=None):
514508
if request.method == 'GET':
@@ -526,7 +520,7 @@ def get_cm_attendees(sid, user_dict=None):
526520
return jsonify({"attendees": attendees}), 200
527521

528522
log = logger.new(request=request, auth_dict=user_dict)
529-
log.info('Delete Technical Seminar {}'.format(sid))
523+
log.info(f'Delete Technical Seminar {sid}')
530524

531525
if not ldap_is_eboard(user_dict['account']):
532526
return jsonify({"success": False, "error": "Not EBoard"}), 403
@@ -545,7 +539,7 @@ def get_cm_attendees(sid, user_dict=None):
545539

546540

547541
@attendance_bp.route('/attendance/cm/<cid>', methods=['GET', 'DELETE'])
548-
@auth.oidc_auth
542+
@auth.oidc_auth("default")
549543
@get_user
550544
def get_ts_attendees(cid, user_dict=None):
551545
if request.method == 'GET':
@@ -563,7 +557,7 @@ def get_ts_attendees(cid, user_dict=None):
563557
return jsonify({"attendees": attendees}), 200
564558

565559
log = logger.new(request=request, auth_dict=user_dict)
566-
log.info('Delete Committee Meeting {}'.format(cid))
560+
log.info(f'Delete Committee Meeting {cid}')
567561

568562
if not ldap_is_eboard(user_dict['account']):
569563
return jsonify({"success": False, "error": "Not EBoard"}), 403
@@ -582,11 +576,11 @@ def get_ts_attendees(cid, user_dict=None):
582576

583577

584578
@attendance_bp.route('/attendance/cm/<cid>/approve', methods=['POST'])
585-
@auth.oidc_auth
579+
@auth.oidc_auth("default")
586580
@get_user
587581
def approve_cm(cid, user_dict=None):
588582
log = logger.new(request=request, auth_dict=user_dict)
589-
log.info('Approve Committee Meeting {} Attendance'.format(cid))
583+
log.info(f'Approve Committee Meeting {cid} Attendance')
590584

591585
if not ldap_is_eboard(user_dict['account']):
592586
return jsonify({"success": False, "error": "Not EBoard"}), 403
@@ -600,11 +594,11 @@ def approve_cm(cid, user_dict=None):
600594

601595

602596
@attendance_bp.route('/attendance/ts/<sid>/approve', methods=['POST'])
603-
@auth.oidc_auth
597+
@auth.oidc_auth("default")
604598
@get_user
605599
def approve_ts(sid, user_dict=None):
606600
log = logger.new(request=request, auth_dict=user_dict)
607-
log.info('Approve Technical Seminar {} Attendance'.format(sid))
601+
log.info(f'Approve Technical Seminar {sid} Attendance')
608602

609603
if not ldap_is_eboard(user_dict['account']):
610604
return jsonify({"success": False, "error": "Not EBoard"}), 403

conditional/blueprints/cache_management.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222

2323
@cache_bp.route('/restart')
24-
@auth.oidc_auth
24+
@auth.oidc_auth("default")
2525
@get_user
2626
def restart_app(user_dict=None):
2727
if not ldap_is_rtp(user_dict['account']):
@@ -34,7 +34,7 @@ def restart_app(user_dict=None):
3434

3535

3636
@cache_bp.route('/clearcache')
37-
@auth.oidc_auth
37+
@auth.oidc_auth("default")
3838
@get_user
3939
def clear_cache(user_dict=None):
4040
if not ldap_is_eval_director(user_dict['account']) and not ldap_is_rtp(user_dict['account']):

0 commit comments

Comments
 (0)