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 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(

View File

@@ -11,8 +11,10 @@ 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()
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