From 013b52cf536be43ada0681ef9aea853e9127d9e8 Mon Sep 17 00:00:00 2001 From: Anaz Date: Fri, 10 Jan 2025 09:37:14 +0400 Subject: [PATCH] ajout de lalogique du premier inscrit admin --- services/auth_service.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/services/auth_service.py b/services/auth_service.py index ffef4ae..4bbf6e7 100644 --- a/services/auth_service.py +++ b/services/auth_service.py @@ -75,14 +75,11 @@ class AuthService: @staticmethod async def create_user(user: UserCreate, db): - query = select(users_table).where(users_table.c.email == user.email) - result = await db.execute(query) - existing_user = result.fetchone() - if existing_user: - raise HTTPException(status_code=400, detail="Email already registered") + result = await db.execute(select(users_table)) + users = result.fetchall() + role = "admin" if len(users) == 0 else user.role hashed_password = AuthService.get_password_hash(user.password) - query = insert(users_table).values( email=user.email, full_name=user.full_name, @@ -90,17 +87,18 @@ class AuthService: date_of_birth=user.date_of_birth, organization=user.organization, hashed_password=hashed_password, - role="user" + role=role ) try: result = await db.execute(query) await db.commit() user_id = result.inserted_primary_key[0] - return await AuthService.get_current_user(db=db) + return {"id": user_id, "email": user.email, "role": role} except Exception as e: await db.rollback() raise HTTPException(status_code=500, detail=f"Could not create user: {str(e)}") + @staticmethod async def admin_required(token: str = Depends(oauth2_scheme), db: AsyncSession = Depends(get_db)):