Performance: Permission checking in routes
MEDIUM IMPACT
This affects the server response time and perceived page load speed by controlling how quickly permission checks allow or block route access.
from flask import g, request, abort @app.before_request def load_user(): g.user = get_user_from_cache_or_db(request.headers.get('Authorization')) @app.route('/dashboard') def dashboard(): if not g.user or not g.user.has_permission('view_page'): abort(403) return render_template('dashboard.html')
from flask import request, abort def check_permission(): user = get_user_from_db(request.headers.get('Authorization')) if not user.has_permission('view_page'): abort(403) @app.route('/dashboard') def dashboard(): check_permission() return render_template('dashboard.html')
| Pattern | DB Queries | Server Delay | Impact on LCP | Verdict |
|---|---|---|---|---|
| Check permissions with DB query on every route | Multiple per request | 50-100ms delay | Delays LCP significantly | [X] Bad |
| Cache user and permissions per request | One or cached | Minimal delay | Improves LCP | [OK] Good |