add admin mode
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user