.
This commit is contained in:
		@@ -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")
 | 
			
		||||
    
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user