feat: completar fases 3 y 4 del roadmap mvp (gradebook, drag-and-drop, impersonacion) y actualizar README

This commit is contained in:
2026-09-23 12:10:31 -03:00
parent 4ebc5df4fd
commit 7ad4e3f099
38 changed files with 3804 additions and 390 deletions
+14
View File
@@ -40,6 +40,20 @@ def jwt_required(f):
g.jwt_user = user
g.jwt_payload = payload
g.jwt_token = token
g.real_admin_user = user
g.is_impersonating = False
impersonate_header = request.headers.get('X-Impersonate-User')
if impersonate_header and user.is_admin():
target_user = None
if impersonate_header.strip().isdigit():
target_user = db.session.get(User, int(impersonate_header.strip()))
else:
target_user = User.query.filter_by(email=impersonate_header.strip()).first()
if target_user and target_user.is_active:
g.jwt_user = target_user
g.is_impersonating = True
except jwt.ExpiredSignatureError:
return jsonify({