add admin mode

This commit is contained in:
kandrusyak
2023-08-02 22:06:07 +03:00
parent e83616e4c0
commit f88c5a27ea
2 changed files with 8 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
from fastapi import Depends from fastapi import Depends, Request
from fastapi.routing import APIRouter from fastapi.routing import APIRouter
from pydantic.types import UUID4 from pydantic.types import UUID4
from typing import List, Optional from typing import List, Optional
@@ -13,10 +13,10 @@ router = APIRouter(prefix='/persons')
async def list_persons( async def list_persons(
full_name: str = '', full_name: str = '',
persons_service: PersonService = Depends(get_persons_service), persons_service: PersonService = Depends(get_persons_service),
request: Request = ''
) -> List[models.Person]: ) -> 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) @router.get('/{person_id}', response_model=PersonDetail)
async def get_person( async def get_person(

View File

@@ -11,9 +11,11 @@ class PersonService(BaseService[Person, PersonCreate, Any]):
def __init__(self, db_session: Session): def __init__(self, db_session: Session):
super(PersonService, self).__init__(Person, db_session) super(PersonService, self).__init__(Person, db_session)
def list(self, full_name: str) -> List[Person]: def list(self, full_name: str, role: str) -> List[Person]:
#objs: List[Person] = self.db_session.query(Person).all() if role == "admin":
objs: List[Person] = self.db_session.query(Person).filter(Person.last_name.ilike(full_name)).all() 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 return objs
def create(self, obj: PersonCreate) -> Person: def create(self, obj: PersonCreate) -> Person: