Add missing json import in auth.py for session updates

parent eb0a9847
......@@ -21,6 +21,7 @@ Authentication and session management for Video AI.
import os
import time
import secrets
import json
from typing import Optional, Dict, Any
from .database import authenticate_user, validate_api_token, create_persistent_session, get_persistent_session, destroy_persistent_session
......@@ -80,6 +81,22 @@ class SessionManager:
else:
return get_persistent_session(session_id)
def update_session_user(self, session_id: str, user: Dict[str, Any]) -> None:
"""Update user data in session."""
if self._use_redis():
session_data = self._get_redis_session(session_id)
if session_data:
session_data['user'] = user
self.redis_client.setex(f"session:{session_id}", self.session_timeout, json.dumps(session_data))
else:
# Update database session
from .database import get_db_connection
conn = get_db_connection()
cursor = conn.cursor()
cursor.execute('UPDATE sessions SET data = ? WHERE session_id = ?', (json.dumps({'user': user}), session_id))
conn.commit()
conn.close()
def destroy_session(self, session_id: str) -> None:
"""Destroy session."""
if self._use_redis():
......
......@@ -1056,6 +1056,11 @@ def upload_avatar():
from .database import update_user_avatar
update_user_avatar(user['id'], filename)
# Update session user data
user['avatar'] = filename
from .auth import session_manager
session_manager.update_session_user(session['session_id'], user)
flash('Avatar uploaded successfully', 'success')
else:
flash('Invalid file type. Please upload PNG, JPG, or GIF.', 'error')
......@@ -1079,6 +1084,11 @@ def delete_avatar():
from .database import update_user_avatar
update_user_avatar(user['id'], None)
# Update session user data
user['avatar'] = None
from .auth import session_manager
session_manager.update_session_user(session['session_id'], user)
flash('Custom avatar deleted. Using Gravatar now.', 'success')
else:
flash('No custom avatar to delete', 'error')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment