diff --git a/backend/app/api/api_v1/routers/platform.py b/backend/app/api/api_v1/routers/platform.py index 58a7d20..4a8f05e 100644 --- a/backend/app/api/api_v1/routers/platform.py +++ b/backend/app/api/api_v1/routers/platform.py @@ -254,17 +254,20 @@ async def flow_delete( raise APIException('platform:flow',request.url._url,f"Error occurred while delete flow:",e) @r.get( - "/domains/{tenantid}", + "/domains", response_model=List[Domain], response_model_exclude_none=True, ) async def domain_details( request: Request, - tenantid:str, + user=Depends(get_current_active_user), db=Depends(get_db), ): try: - domains = get_domains(db,tenantid) + if user.is_superuser: + domains =get_alldomains(db) + else: + domains = get_domains(db,user.id) return domains except Exception as e: raise APIException('platform:domains',request.url._url,f"Error occurred while get domains:",e) diff --git a/backend/app/api/api_v1/routers/users.py b/backend/app/api/api_v1/routers/users.py index a42fb44..8cb1710 100644 --- a/backend/app/api/api_v1/routers/users.py +++ b/backend/app/api/api_v1/routers/users.py @@ -3,6 +3,7 @@ import typing as t from app.db.session import get_db from app.db.crud import ( + get_allusers, get_users, get_user, create_user, @@ -30,7 +31,10 @@ async def users_list( """ Get all users """ - users = get_users(db,current_user.is_superuser) + if current_user.is_superuser: + users = get_allusers(db) + else: + users = get_users(db) # This is necessary for react-admin to work #response.headers["Content-Range"] = f"0-9/{len(users)}" return users diff --git a/backend/app/db/crud.py b/backend/app/db/crud.py index 18c2489..8adacff 100644 --- a/backend/app/db/crud.py +++ b/backend/app/db/crud.py @@ -19,13 +19,15 @@ def get_user_by_email(db: Session, email: str) -> schemas.UserBase: return db.query(models.User).filter(models.User.email == email).first() +def get_allusers( + db: Session +) -> t.List[schemas.UserOut]: + return db.query(models.User).all() + def get_users( db: Session, super:bool ) -> t.List[schemas.UserOut]: - if super: - return db.query(models.User).all() - else: - return db.query(models.User).filter(models.User.is_superuser == False) + return db.query(models.User).filter(models.User.is_superuser == False) def create_user(db: Session, user: schemas.UserCreate): @@ -388,8 +390,12 @@ def get_domain(db: Session, userid: str): # domain.kintonepwd = decrypted_pwd return domains -def get_domains(db: Session,tenantid:str): - domains = db.query(models.Domain).filter(models.Domain.tenantid == tenantid ).all() +def get_alldomains(db: Session): + domains = db.query(models.Domain).all() + return domains + +def get_domains(db: Session,userid:int): + domains = db.query(models.Domain).filter(models.Domain.ownerid == userid ).all() if not domains: raise HTTPException(status_code=404, detail="Data not found") # for domain in domains: