From fdbfd24216f2e85d425155eb1a4ffa1acd4be960 Mon Sep 17 00:00:00 2001 From: Manuel Aranda Rosales Date: Thu, 20 Jun 2024 09:47:48 +0200 Subject: [PATCH] Update Usuarios --- Usuarios.md | 98 ++++++++++++++++++++++++++++------------------------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/Usuarios.md b/Usuarios.md index c7d7763..7d4b628 100644 --- a/Usuarios.md +++ b/Usuarios.md @@ -16,6 +16,7 @@ 3. [Resource Definition](#resource-definition) 4. [API Operations](#api-operations) 5. [Entity Properties](#entity-properties) +6. [User Input DTO](#user-input-dto) ### Introduction @@ -23,7 +24,7 @@ This documentation describes the configuration of API Platform in a Symfony 6 pr ### Configuration -API configuration is done in Symfony configuration files, usually in `config/packages/api_platform.yaml`. +API configuration is done in Symfony configuration files, usually in `config/packages/api_platform.yaml` file. ```yaml resources: @@ -126,6 +127,51 @@ properties: - **uuid**: - **Identifier**: `true` +### User Input DTO + +#### Fields Required in User Endpoint Input + +1. **username** + - **Type**: string + - **Validation**: Not blank + - **Groups**: `user:write` + +2. **allowedOrganizationalUnits** + - **Type**: array of `OrganizationalUnit` + - **Groups**: `user:write` + - **API Property**: `readableLink: false, writableLink: false` + +3. **password** + - **Type**: string + - **Validation**: Not blank (for `user:post`), Minimum length: 8 (for `user:write`, `user:post`) + - **Groups**: `user:write` + +4. **enabled** + - **Type**: boolean + - **Validation**: Not null + - **Groups**: `user:write` + - **Default**: true + +5. **userGroups** + - **Type**: array of `UserGroup` + - **Groups**: `user:write` + - **API Property**: `readableLink: false, writableLink: false` + +6. **currentPassword** + - **Type**: string + - **Validation**: Not blank (for `user:reset-password`) + - **Groups**: `user:reset-password` + +7. **newPassword** + - **Type**: string + - **Validation**: Not blank, Minimum length: 8 (for `user:reset-password`) + - **Groups**: `user:reset-password` + +8. **repeatNewPassword** + - **Type**: string + - **Validation**: Not blank, Minimum length: 8, Must match `newPassword` (for `user:reset-password`) + - **Groups**: `user:reset-password` + --- ## Español @@ -137,14 +183,15 @@ properties: 3. [Definición de Recursos](#definición-de-recursos) 4. [Operaciones de API](#operaciones-de-api) 5. [Propiedades de la Entidad](#propiedades-de-la-entidad) +6. [DTO de Entrada de Usuario](#dto-de-entrada-de-usuario) ### Introducción -Esta documentación describe la configuración de API Platform en un proyecto Symfony 6. Se detallan los recursos, operaciones y propiedades de las entidades expuestas a través de la API. +Esta documentación describe la configuración de API Platform en un proyecto Symfony 6 Se detallan los recursos, operaciones y propiedades de las entidades expuestas a través de la API. ### Configuración -La configuración de la API se realiza en los archivos de configuración de Symfony, generalmente en `config/packages/api_platform.yaml`. +La configuración de la API se realiza en los archivos de configuración de Symfony, generalmente en `config/packages/api_platform.yaml`. ```yaml resources: @@ -206,47 +253,4 @@ properties: ### Operaciones de API #### Colección de Usuarios (GetCollection) -- **Proveedor**: `App\State\Provider\UserProvider` -- **Filtros**: - - Ordenar usuarios: `api_platform.filter.user.order` - - Buscar usuarios: `api_platform.filter.user.search` - - Filtro booleano: `api_platform.filter.user.boolean` - -#### Obtener Usuario (Get) -- **Proveedor**: `App\State\Provider\UserProvider` - -#### Actualizar Usuario (Put) -- **Proveedor**: `App\State\Provider\UserProvider` - -#### Modificar Parcialmente Usuario (Patch) -- **Proveedor**: `App\State\Provider\UserProvider` - -#### Crear Usuario (Post) -- **Seguridad**: Solo los usuarios con el rol `ROLE_SUPER_ADMIN` pueden acceder. -- **Contexto de Validación**: `['default', 'user:post']` - -#### Eliminar Usuario (Delete) -- **Seguridad**: Solo los usuarios con el rol `ROLE_SUPER_ADMIN` pueden acceder. - -#### Resetear Contraseña (reset_password) -- **Proveedor**: `App\State\Provider\UserProvider` -- **Clase**: `ApiPlatform\Metadata\Put` -- **Método**: `PUT` -- **Entrada (input)**: `App\Dto\Input\UserInput` -- **URI**: `/users/{uuid}/reset-password` -- **Controlador**: `App\Controller\ResetPasswordAction` -- **Contexto de Validación**: `['user:reset-password']` - -### Propiedades de la Entidad - -#### App\Entity\User - -- **id**: - - **Identificador**: `false` - -- **uuid**: - - **Identificador**: `true` - ---- - -Con este formato, puedes seleccionar el idioma que prefieras y acceder a la documentación correspondiente. \ No newline at end of file +- \ No newline at end of file