add reset password

This commit is contained in:
2025-04-14 10:49:28 -03:00
parent 273c580139
commit e472826dcc
17 changed files with 228 additions and 56 deletions

View File

@@ -15,7 +15,7 @@ import elastic
from boto3clients import dynamodb_client
from enrollment import set_status_as_canceled
from middlewares.audit_log_middleware import AuditLogMiddleware
from middlewares.authorizer_middleware import User
from middlewares.authentication_middleware import User
from settings import ELASTIC_CONN, ENROLLMENT_TABLE, USER_TABLE
router = Router()

View File

@@ -24,6 +24,7 @@ from pydantic import UUID4, BaseModel, EmailStr, StringConstraints
import cognito
import elastic
import middlewares
from boto3clients import dynamodb_client, idp_client
from middlewares import AuditLogMiddleware
from models import User
@@ -70,9 +71,31 @@ class Password(BaseModel):
new_password: Annotated[str, StringConstraints(min_length=6)]
@router.post('/<id>/password', compress=True, tags=['User'], include_in_schema=False)
def new_password(id: str, payload: Password):
return Response(status_code=HTTPStatus.OK)
@router.post(
'/<id>/password',
compress=True,
tags=['User'],
include_in_schema=False,
middlewares=[
AuditLogMiddleware('PASSWORD_RESET', user_collect, ('id', 'cognito_sub'))
],
)
def password(id: str, payload: Password):
cognito.admin_set_user_password(
username=str(payload.cognito_sub),
password=payload.new_password,
user_pool_id=USER_POOOL_ID,
idp_client=idp_client,
)
return Response(
body={
'id': id,
'cognito_sub': payload.cognito_sub,
},
content_type=content_types.APPLICATION_JSON,
status_code=HTTPStatus.OK,
)
@router.get('/<id>', compress=True, tags=['User'], summary='Get user')
@@ -80,10 +103,10 @@ def get_user(id: str):
return user_collect.get_item(KeyPair(id, '0'))
@router.get('/<id>/idp', compress=True, include_in_schema=False)
def get_idp(id: str):
@router.get('/<sub>/idp', compress=True, include_in_schema=False)
def get_idp(sub: str):
return cognito.admin_get_user(
sub=id,
sub=sub,
user_pool_id=USER_POOOL_ID,
idp_client=idp_client,
)