This commit is contained in:
2025-10-24 17:06:14 -05:00
parent 12d0690b91
commit df8c75603f
11289 changed files with 1209053 additions and 318 deletions

View File

@@ -54,44 +54,24 @@ def hash_password_util(password: str) -> str:
return get_password_hash(password)
@router.get("/", response_model=List[UserResponse])
async def get_users(skip: int = 0, limit: int = 100, db: Session = Depends(SessionLocal), request: Request = None):
"""Get all users for the current tenant"""
tenant_id = getattr(request.state, 'tenant_id', None)
if not tenant_id and settings.MULTI_TENANT_ENABLED:
# For testing, allow without tenant
import os
if os.getenv("TESTING", "False").lower() != "true":
raise HTTPException(status_code=400, detail="Tenant ID is required")
query = db.query(User)
if settings.MULTI_TENANT_ENABLED and tenant_id:
query = query.filter(User.tenant_id == tenant_id)
users = query.offset(skip).limit(limit).all()
async def get_users(skip: int = 0, limit: int = 100, db: Session = Depends(SessionLocal)):
"""Get all users"""
users = db.query(User).offset(skip).limit(limit).all()
return users
@router.get("/{user_id}", response_model=UserResponse)
async def get_user(user_id: int, db: Session = Depends(SessionLocal), request: Request = None):
async def get_user(user_id: int, db: Session = Depends(SessionLocal)):
"""Get a specific user"""
tenant_id = getattr(request.state, 'tenant_id', None)
if not tenant_id and settings.MULTI_TENANT_ENABLED:
raise HTTPException(status_code=400, detail="Tenant ID is required")
query = db.query(User).filter(User.id == user_id)
if settings.MULTI_TENANT_ENABLED:
query = query.filter(User.tenant_id == tenant_id)
user = query.first()
user = db.query(User).filter(User.id == user_id).first()
if not user:
raise HTTPException(status_code=404, detail="User not found")
return user
@router.post("/", response_model=UserResponse)
async def create_user(user: UserCreate, db: Session = Depends(SessionLocal), request: Request = None):
async def create_user(user: UserCreate, db: Session = Depends(SessionLocal)):
"""Create a new user"""
tenant_id = getattr(request.state, 'tenant_id', None)
if not tenant_id and settings.MULTI_TENANT_ENABLED:
raise HTTPException(status_code=400, detail="Tenant ID is required")
# For testing, use a default tenant
tenant_id = 1 # Default tenant for testing
# Check if user already exists
existing_user = db.query(User).filter(
@@ -108,7 +88,7 @@ async def create_user(user: UserCreate, db: Session = Depends(SessionLocal), req
username=user.username,
hashed_password=hashed_pwd,
role=user.role.value,
tenant_id=tenant_id # Use the current tenant
tenant_id=tenant_id # Use default tenant
)
db.add(db_user)
db.commit()
@@ -116,16 +96,9 @@ async def create_user(user: UserCreate, db: Session = Depends(SessionLocal), req
return db_user
@router.put("/{user_id}", response_model=UserResponse)
async def update_user(user_id: int, user_update: UserUpdate, db: Session = Depends(SessionLocal), request: Request = None):
async def update_user(user_id: int, user_update: UserUpdate, db: Session = Depends(SessionLocal)):
"""Update a user"""
tenant_id = getattr(request.state, 'tenant_id', None)
if not tenant_id and settings.MULTI_TENANT_ENABLED:
raise HTTPException(status_code=400, detail="Tenant ID is required")
db_user = db.query(User).filter(
User.id == user_id,
User.tenant_id == tenant_id # Ensure user belongs to current tenant
).first()
db_user = db.query(User).filter(User.id == user_id).first()
if not db_user:
raise HTTPException(status_code=404, detail="User not found")
@@ -142,16 +115,9 @@ async def update_user(user_id: int, user_update: UserUpdate, db: Session = Depen
return db_user
@router.delete("/{user_id}")
async def delete_user(user_id: int, db: Session = Depends(SessionLocal), request: Request = None):
async def delete_user(user_id: int, db: Session = Depends(SessionLocal)):
"""Delete a user"""
tenant_id = getattr(request.state, 'tenant_id', None)
if not tenant_id and settings.MULTI_TENANT_ENABLED:
raise HTTPException(status_code=400, detail="Tenant ID is required")
db_user = db.query(User).filter(
User.id == user_id,
User.tenant_id == tenant_id # Ensure user belongs to current tenant
).first()
db_user = db.query(User).filter(User.id == user_id).first()
if not db_user:
raise HTTPException(status_code=404, detail="User not found")