- admin_required now accepts users with 'admin' role (via g.user) in addition to the password-based is_admin session flag, so both auth methods grant access - impersonate stores the admin's user_id (not True) in admin_impersonating so stop-impersonating can restore the correct session - stop_impersonating restores user_id from admin_impersonating instead of just popping it - remove s.stripe_customer_id from get_user_by_id (Paddle project, no stripe_customer_id column in subscriptions) Fixes 3 test_roles.py failures: test_admin_index_accessible_with_admin_role, test_impersonate_stores_admin_id, test_stop_impersonating_restores_admin Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The file is empty.