Performance: Template-level authorization
MEDIUM IMPACT
This affects page rendering speed and user interaction responsiveness by controlling what content is rendered based on user permissions.
from flask import render_template filtered_items = [item for item in items if not item.is_sensitive or current_user.has_permission('view_sensitive')] show_admin = current_user.has_permission('admin') return render_template('template.html', items=filtered_items, show_admin=show_admin) <!-- In template.html --> {% if show_admin %} <div>Admin Panel</div> {% endif %} {% for item in items %} <div>{{ item.name }}</div> {% endfor %}
{% if current_user.has_permission('admin') %}
<div>Admin Panel</div>
{% endif %}
{% for item in items %}
{% if item.is_sensitive and not current_user.has_permission('view_sensitive') %}
<!-- skip -->
{% else %}
<div>{{ item.name }}</div>
{% endif %}
{% endfor %}| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Complex permission checks inside templates | N/A (server-side) | N/A | N/A | [X] Bad |
| Pre-filtering data and passing flags to templates | N/A (server-side) | N/A | N/A | [OK] Good |