diff --git a/src/personal_info/routers/persons.py b/src/personal_info/routers/persons.py index e0d4141..ae6d307 100644 --- a/src/personal_info/routers/persons.py +++ b/src/personal_info/routers/persons.py @@ -1,4 +1,4 @@ -from fastapi import Depends +from fastapi import Depends, Request from fastapi.routing import APIRouter from pydantic.types import UUID4 from typing import List, Optional @@ -13,10 +13,10 @@ router = APIRouter(prefix='/persons') async def list_persons( full_name: str = '', persons_service: PersonService = Depends(get_persons_service), - + request: Request = '' ) -> List[models.Person]: - return persons_service.list(full_name) + return persons_service.list(full_name, request.headers.get('UserRole')) @router.get('/{person_id}', response_model=PersonDetail) async def get_person( diff --git a/src/personal_info/services/persons.py b/src/personal_info/services/persons.py index 4f844a3..8c92ba3 100644 --- a/src/personal_info/services/persons.py +++ b/src/personal_info/services/persons.py @@ -11,9 +11,11 @@ class PersonService(BaseService[Person, PersonCreate, Any]): def __init__(self, db_session: Session): super(PersonService, self).__init__(Person, db_session) - def list(self, full_name: str) -> List[Person]: - #objs: List[Person] = self.db_session.query(Person).all() - objs: List[Person] = self.db_session.query(Person).filter(Person.last_name.ilike(full_name)).all() + def list(self, full_name: str, role: str) -> List[Person]: + if role == "admin": + objs: List[Person] = self.db_session.query(Person).all() + else: + objs: List[Person] = self.db_session.query(Person).filter(Person.last_name.ilike(full_name)).all() return objs def create(self, obj: PersonCreate) -> Person: