feat: add bearer schema to all endpoints with auth
This commit is contained in:
		@@ -2,7 +2,6 @@ from fastapi import (
 | 
			
		||||
    APIRouter,
 | 
			
		||||
    Depends,
 | 
			
		||||
    HTTPException,
 | 
			
		||||
    Request,
 | 
			
		||||
    status,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -15,8 +14,9 @@ from api.db.logic.account import get_user_by_id, update_user_by_id, create_user,
 | 
			
		||||
 | 
			
		||||
from api.schemas.account.account import User
 | 
			
		||||
from api.db.tables.account import AccountStatus
 | 
			
		||||
from api.schemas.base import bearer_schema
 | 
			
		||||
from api.schemas.endpoints.account import UserUpdate,AllUserResponse
 | 
			
		||||
 | 
			
		||||
from api.services.auth import get_current_user
 | 
			
		||||
 | 
			
		||||
from api.services.user_role_validation import db_user_role_validation
 | 
			
		||||
from api.services.update_data_validation import update_user_data_changes
 | 
			
		||||
@@ -28,17 +28,15 @@ api_router = APIRouter(
 | 
			
		||||
    tags=["User accountModel"],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@api_router.get("",response_model=AllUserResponse)
 | 
			
		||||
@api_router.get("",dependencies=[Depends(bearer_schema)],response_model=AllUserResponse)
 | 
			
		||||
async def get_all_account(
 | 
			
		||||
 | 
			
		||||
                    request: Request,
 | 
			
		||||
                    page: int ,
 | 
			
		||||
                    limit: int ,
 | 
			
		||||
                    connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
                    page: int = 1,
 | 
			
		||||
                    limit: int = 10,
 | 
			
		||||
                    connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
                    current_user = Depends(get_current_user)
 | 
			
		||||
                    ):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
    user_list = await get_user_accaunt_page(connection,page,limit)
 | 
			
		||||
@@ -51,9 +49,8 @@ async def get_all_account(
 | 
			
		||||
    return user_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.get("/{user_id}", response_model=User)
 | 
			
		||||
async def get_account(user_id: int, request: Request, connection: AsyncConnection = Depends(get_connection_dep)):
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
@api_router.get("/{user_id}",dependencies=[Depends(bearer_schema)], response_model=User)
 | 
			
		||||
async def get_account(user_id: int, connection: AsyncConnection = Depends(get_connection_dep), current_user = Depends(get_current_user)):
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
    user = await get_user_by_id(connection, user_id)
 | 
			
		||||
@@ -65,14 +62,13 @@ async def get_account(user_id: int, request: Request, connection: AsyncConnectio
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.post("", response_model=User)
 | 
			
		||||
@api_router.post("", dependencies=[Depends(bearer_schema)],response_model=User)
 | 
			
		||||
async def create_account(
 | 
			
		||||
                        user: UserUpdate,
 | 
			
		||||
                        request: Request,
 | 
			
		||||
                        connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
                        connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
                    ):
 | 
			
		||||
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
@@ -90,11 +86,10 @@ async def create_account(
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.put("/{user_id}", response_model=User)
 | 
			
		||||
@api_router.put("/{user_id}",dependencies=[Depends(bearer_schema)], response_model=User)
 | 
			
		||||
async def update_account(
 | 
			
		||||
    user_id: int, request: Request, user_update: UserUpdate, connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
    user_id: int, user_update: UserUpdate, connection: AsyncConnection = Depends(get_connection_dep), current_user = Depends(get_current_user)
 | 
			
		||||
):
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
@@ -116,15 +111,14 @@ async def update_account(
 | 
			
		||||
 | 
			
		||||
    return user
 | 
			
		||||
 | 
			
		||||
@api_router.delete("/{user_id}", response_model=User)
 | 
			
		||||
@api_router.delete("/{user_id}", dependencies=[Depends(bearer_schema)],response_model=User)
 | 
			
		||||
async def delete_account(
 | 
			
		||||
                        user_id: int,
 | 
			
		||||
                        request: Request,
 | 
			
		||||
                        connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
                        connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
                    ):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,6 @@ from fastapi import (
 | 
			
		||||
    Depends,
 | 
			
		||||
    Form,
 | 
			
		||||
    HTTPException,
 | 
			
		||||
    Request,
 | 
			
		||||
    Response,
 | 
			
		||||
    status,
 | 
			
		||||
)
 | 
			
		||||
@@ -19,9 +18,11 @@ from api.db.logic.keyring import get_key_by_id,create_key,update_key_by_id
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
from api.db.tables.account import KeyStatus
 | 
			
		||||
from api.schemas.base import bearer_schema
 | 
			
		||||
from api.schemas.endpoints.account_keyring import AccountKeyringUpdate
 | 
			
		||||
 | 
			
		||||
from api.schemas.account.account_keyring import AccountKeyring
 | 
			
		||||
from api.services.auth import get_current_user
 | 
			
		||||
 | 
			
		||||
from api.services.user_role_validation import db_user_role_validation
 | 
			
		||||
from api.services.update_data_validation import update_key_data_changes
 | 
			
		||||
@@ -33,14 +34,13 @@ api_router = APIRouter(
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.get("/{user_id}/{key_id}", response_model=AccountKeyring)
 | 
			
		||||
@api_router.get("/{user_id}/{key_id}",dependencies=[Depends(bearer_schema)], response_model=AccountKeyring)
 | 
			
		||||
async def get_keyring(
 | 
			
		||||
                    key_id: str,
 | 
			
		||||
                    request: Request,
 | 
			
		||||
                    connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
                    connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
                    ):
 | 
			
		||||
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
@@ -52,15 +52,14 @@ async def get_keyring(
 | 
			
		||||
    return keyring
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.post("/{user_id}/{key_id}", response_model=AccountKeyring)
 | 
			
		||||
@api_router.post("/{user_id}/{key_id}", dependencies=[Depends(bearer_schema)], response_model=AccountKeyring)
 | 
			
		||||
async def create_keyring(
 | 
			
		||||
    user_id: int,
 | 
			
		||||
    key_id: str,
 | 
			
		||||
    request: Request,
 | 
			
		||||
    key: AccountKeyringUpdate,
 | 
			
		||||
    connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
):
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
@@ -76,15 +75,14 @@ async def create_keyring(
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.put("/{user_id}/{key_id}", response_model=AccountKeyring)
 | 
			
		||||
@api_router.put("/{user_id}/{key_id}", dependencies=[Depends(bearer_schema)],response_model=AccountKeyring)
 | 
			
		||||
async def update_keyring(
 | 
			
		||||
    user_id: int,
 | 
			
		||||
    key_id: str,
 | 
			
		||||
    request: Request,
 | 
			
		||||
    keyring_update: AccountKeyringUpdate,
 | 
			
		||||
    connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
):
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
@@ -106,11 +104,10 @@ async def update_keyring(
 | 
			
		||||
 | 
			
		||||
    return keyring
 | 
			
		||||
 | 
			
		||||
@api_router.delete("/{user_id}/{key_id}", response_model=AccountKeyring)
 | 
			
		||||
@api_router.delete("/{user_id}/{key_id}",dependencies=[Depends(bearer_schema)], response_model=AccountKeyring)
 | 
			
		||||
async def delete_keyring(
 | 
			
		||||
    user_id: int, key_id: str, request: Request, connection: AsyncConnection = Depends(get_connection_dep)
 | 
			
		||||
    user_id: int, key_id: str,  connection: AsyncConnection = Depends(get_connection_dep), current_user = Depends(get_current_user)
 | 
			
		||||
):
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    authorize_user = await db_user_role_validation(connection, current_user)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,8 @@ from sqlalchemy.ext.asyncio import AsyncConnection
 | 
			
		||||
 | 
			
		||||
from api.db.connection.session import get_connection_dep
 | 
			
		||||
from api.db.logic.account import get_user_by_id, update_user_by_id,get_user_by_login
 | 
			
		||||
from api.schemas.base import bearer_schema
 | 
			
		||||
from api.services.auth import get_current_user
 | 
			
		||||
from api.services.update_data_validation import update_user_data_changes
 | 
			
		||||
 | 
			
		||||
from api.schemas.endpoints.account import UserUpdate
 | 
			
		||||
@@ -26,13 +28,11 @@ api_router = APIRouter(
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.get("",response_model=User)
 | 
			
		||||
@api_router.get("",dependencies=[Depends(bearer_schema)],response_model=User)
 | 
			
		||||
async def get_profile(
 | 
			
		||||
    request: Request,
 | 
			
		||||
    connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
):
 | 
			
		||||
    # Извлекаем текущего пользователя из request.state
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    user = await get_user_by_login(connection, current_user)
 | 
			
		||||
 | 
			
		||||
@@ -42,13 +42,12 @@ async def get_profile(
 | 
			
		||||
    return user
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api_router.put("",response_model=User)
 | 
			
		||||
@api_router.put("", dependencies=[Depends(bearer_schema)],response_model=User)
 | 
			
		||||
async def update_profile(
 | 
			
		||||
    request: Request,
 | 
			
		||||
    user_updata: UserUpdate,
 | 
			
		||||
    connection: AsyncConnection = Depends(get_connection_dep),
 | 
			
		||||
    current_user = Depends(get_current_user)
 | 
			
		||||
):
 | 
			
		||||
    current_user = request.state.current_user
 | 
			
		||||
 | 
			
		||||
    user = await get_user_by_login(connection, current_user)
 | 
			
		||||
    if user is None:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user