1313
1414from data_rentgen .db .models import User # noqa: TC001
1515from data_rentgen .server .errors import get_error_responses
16+ from data_rentgen .server .providers .auth .personal_token_provider import PersonalTokenAuthProvider # noqa: TC001
1617from data_rentgen .server .schemas .v1 import (
1718 PageResponseV1 ,
1819 PersonalTokenCreatedDetailedResponseV1 ,
2324 PersonalTokenResponseV1 ,
2425 PersonalTokenScopeV1 ,
2526)
26- from data_rentgen .server .services import PersonalTokenService , get_user
27+ from data_rentgen .server .services import PersonalTokenPolicy , PersonalTokenService , get_user
2728
2829router = APIRouter (
2930 prefix = "/personal-tokens" ,
@@ -50,8 +51,9 @@ async def get_personal_tokens(
5051@router .post ("" )
5152async def create_personal_token (
5253 token_params : PersonalTokenCreateRequestV1 ,
53- current_user : Annotated [User , Depends (get_user ())],
54+ current_user : Annotated [User , Depends (get_user (personal_token_policy = PersonalTokenPolicy . DENY ))],
5455 user_token_service : Annotated [PersonalTokenService , Depends ()],
56+ personal_token_auth_provider : Annotated [PersonalTokenAuthProvider , Depends ()],
5557) -> PersonalTokenCreatedDetailedResponseV1 :
5658 async with user_token_service :
5759 token = await user_token_service .create (
@@ -72,16 +74,17 @@ async def create_personal_token(
7274 since = token .since ,
7375 until = token .until ,
7476 ),
75- content = "TODO" ,
77+ content = personal_token_auth_provider . generate_jwt ( user = current_user , token = token ) ,
7678 )
7779
7880
7981@router .patch ("/{token_id}" )
8082async def reset_personal_token (
8183 token_id : UUID ,
8284 new_token_params : PersonalTokenResetRequestV1 ,
83- current_user : Annotated [User , Depends (get_user ())],
85+ current_user : Annotated [User , Depends (get_user (personal_token_policy = PersonalTokenPolicy . DENY ))],
8486 user_token_service : Annotated [PersonalTokenService , Depends ()],
87+ personal_token_auth_provider : Annotated [PersonalTokenAuthProvider , Depends ()],
8588) -> PersonalTokenCreatedDetailedResponseV1 :
8689 async with user_token_service :
8790 old_token = await user_token_service .revoke (current_user , token_id )
@@ -102,14 +105,14 @@ async def reset_personal_token(
102105 since = new_token .since ,
103106 until = new_token .until ,
104107 ),
105- content = "TODO" ,
108+ content = personal_token_auth_provider . generate_jwt ( user = current_user , token = new_token ) ,
106109 )
107110
108111
109112@router .delete ("/{token_id}" , status_code = HTTPStatus .NO_CONTENT )
110113async def revoke_personal_token (
111114 token_id : UUID ,
112- current_user : Annotated [User , Depends (get_user ())],
115+ current_user : Annotated [User , Depends (get_user (personal_token_policy = PersonalTokenPolicy . DENY ))],
113116 user_token_service : Annotated [PersonalTokenService , Depends ()],
114117):
115118 async with user_token_service :
0 commit comments