Improve the design of the frontend

This commit is contained in:
Urtzi Alfaro
2025-08-08 19:21:23 +02:00
parent 488bb3ef93
commit 62ca49d4b8
53 changed files with 5395 additions and 5387 deletions

View File

@@ -49,7 +49,9 @@ async def get_current_user_info(
)
# ✅ FIX: Fetch full user from database to get the real role
user = await UserService.get_user_by_id(user_id, db)
from app.repositories import UserRepository
user_repo = UserRepository(User, db)
user = await user_repo.get_by_id(user_id)
logger.debug(f"Fetched user from DB - Role: {user.role}, Email: {user.email}")
@@ -104,7 +106,21 @@ async def update_current_user(
"""Update current user information"""
try:
user_id = current_user.get("user_id") if isinstance(current_user, dict) else current_user.id
updated_user = await UserService.update_user(user_id, user_update, db)
from app.repositories import UserRepository
user_repo = UserRepository(User, db)
# Prepare update data
update_data = {}
if user_update.full_name is not None:
update_data["full_name"] = user_update.full_name
if user_update.phone is not None:
update_data["phone"] = user_update.phone
if user_update.language is not None:
update_data["language"] = user_update.language
if user_update.timezone is not None:
update_data["timezone"] = user_update.timezone
updated_user = await user_repo.update(user_id, update_data)
return UserResponse(
id=str(updated_user.id),
email=updated_user.email,

View File

@@ -259,7 +259,7 @@ class EnhancedAuthService:
"""Logout user using repository pattern"""
try:
async with self.database_manager.get_session() as session:
token_repo = TokenRepository(session)
token_repo = TokenRepository(RefreshToken, session)
# Revoke specific refresh token using repository
success = await token_repo.revoke_token(user_id, refresh_token)
@@ -291,8 +291,8 @@ class EnhancedAuthService:
)
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
token_repo = TokenRepository(session)
user_repo = UserRepository(User, session)
token_repo = TokenRepository(RefreshToken, session)
# Validate refresh token using repository
is_valid = await token_repo.validate_refresh_token(refresh_token, user_id)
@@ -364,7 +364,7 @@ class EnhancedAuthService:
"""Get user profile using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
user = await user_repo.get_by_id(user_id)
if not user:
@@ -394,7 +394,7 @@ class EnhancedAuthService:
"""Update user profile using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
updated_user = await user_repo.update(user_id, update_data)
if not updated_user:
@@ -429,8 +429,8 @@ class EnhancedAuthService:
"""Change user password using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
token_repo = TokenRepository(session)
user_repo = UserRepository(User, session)
token_repo = TokenRepository(RefreshToken, session)
# Get user and verify old password
user = await user_repo.get_by_id(user_id)
@@ -470,7 +470,7 @@ class EnhancedAuthService:
"""Verify user email using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
# In a real implementation, you'd verify the verification_token
# For now, just mark user as verified
@@ -493,8 +493,8 @@ class EnhancedAuthService:
"""Deactivate user account using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
token_repo = TokenRepository(session)
user_repo = UserRepository(User, session)
token_repo = TokenRepository(RefreshToken, session)
# Update user status
updated_user = await user_repo.update(user_id, {"is_active": False})

View File

@@ -10,6 +10,7 @@ import structlog
from app.repositories import UserRepository, TokenRepository
from app.schemas.auth import UserResponse, UserUpdate
from app.models.users import User, RefreshToken
from app.core.security import SecurityManager
from shared.database.unit_of_work import UnitOfWork
from shared.database.transactions import transactional
@@ -29,7 +30,7 @@ class EnhancedUserService:
"""Get user by ID using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
user = await user_repo.get_by_id(user_id)
if not user:
@@ -58,7 +59,7 @@ class EnhancedUserService:
"""Get user by email using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
user = await user_repo.get_by_email(email)
if not user:
@@ -93,7 +94,7 @@ class EnhancedUserService:
"""Get paginated list of users using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
filters = {}
if active_only:
@@ -139,7 +140,7 @@ class EnhancedUserService:
"""Update user information using repository pattern"""
try:
async with self.database_manager.get_session() as db_session:
user_repo = UserRepository(db_session)
user_repo = UserRepository(User, db_session)
# Validate user exists
existing_user = await user_repo.get_by_id(user_id)
@@ -298,7 +299,7 @@ class EnhancedUserService:
"""Activate user account using repository pattern"""
try:
async with self.database_manager.get_session() as db_session:
user_repo = UserRepository(db_session)
user_repo = UserRepository(User, db_session)
# Update user status
updated_user = await user_repo.update(user_id, {"is_active": True})
@@ -321,7 +322,7 @@ class EnhancedUserService:
"""Verify user email using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
# In a real implementation, you'd verify the verification_token
# For now, just mark user as verified
@@ -344,7 +345,7 @@ class EnhancedUserService:
"""Get user statistics using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
# Get basic user statistics
statistics = await user_repo.get_user_statistics()
@@ -372,7 +373,7 @@ class EnhancedUserService:
"""Search users by email or name using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
users = await user_repo.search_users(
search_term, role, active_only, skip, limit
@@ -409,7 +410,7 @@ class EnhancedUserService:
"""Update user role using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
user_repo = UserRepository(User, session)
# Validate role
valid_roles = ["user", "admin", "super_admin"]
@@ -452,8 +453,8 @@ class EnhancedUserService:
"""Get user activity information using repository pattern"""
try:
async with self.database_manager.get_session() as session:
user_repo = UserRepository(session)
token_repo = TokenRepository(session)
user_repo = UserRepository(User, session)
token_repo = TokenRepository(RefreshToken, session)
# Get user
user = await user_repo.get_by_id(user_id)