ajout de lalogique du premier inscrit admin

main
Anaz 2025-01-10 09:37:14 +04:00
parent 2c544badfc
commit 013b52cf53
1 changed files with 6 additions and 8 deletions

View File

@ -75,14 +75,11 @@ class AuthService:
@staticmethod @staticmethod
async def create_user(user: UserCreate, db): async def create_user(user: UserCreate, db):
query = select(users_table).where(users_table.c.email == user.email) result = await db.execute(select(users_table))
result = await db.execute(query) users = result.fetchall()
existing_user = result.fetchone() role = "admin" if len(users) == 0 else user.role
if existing_user:
raise HTTPException(status_code=400, detail="Email already registered")
hashed_password = AuthService.get_password_hash(user.password) hashed_password = AuthService.get_password_hash(user.password)
query = insert(users_table).values( query = insert(users_table).values(
email=user.email, email=user.email,
full_name=user.full_name, full_name=user.full_name,
@ -90,18 +87,19 @@ class AuthService:
date_of_birth=user.date_of_birth, date_of_birth=user.date_of_birth,
organization=user.organization, organization=user.organization,
hashed_password=hashed_password, hashed_password=hashed_password,
role="user" role=role
) )
try: try:
result = await db.execute(query) result = await db.execute(query)
await db.commit() await db.commit()
user_id = result.inserted_primary_key[0] 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: except Exception as e:
await db.rollback() await db.rollback()
raise HTTPException(status_code=500, detail=f"Could not create user: {str(e)}") raise HTTPException(status_code=500, detail=f"Could not create user: {str(e)}")
@staticmethod @staticmethod
async def admin_required(token: str = Depends(oauth2_scheme), db: AsyncSession = Depends(get_db)): async def admin_required(token: str = Depends(oauth2_scheme), db: AsyncSession = Depends(get_db)):
credentials_exception = HTTPException( credentials_exception = HTTPException(