feat: add bearer schema to all endpoints with auth

This commit is contained in:
Vladislav Syrochkin 2025-06-09 12:10:40 +05:00
parent c1d315d6e9
commit 2e4e9d1113
3 changed files with 34 additions and 44 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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: