ed92991872
Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/49df17c8-213a-4e23-adfe-465a0104f6a3 Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com>
48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# `cambiar_contrasena`
|
|
|
|
**Archivo:** `tienda/views.py`
|
|
**URL:** `/tienda/usuario/cambiar-contrasena/`
|
|
**Tipo:** Vista privada (requiere autenticación)
|
|
**Método HTTP:** Solo `POST`
|
|
**Decorador:** `@login_required`
|
|
|
|
## Descripción
|
|
|
|
Cambia la contraseña del usuario autenticado tras verificar la contraseña actual.
|
|
|
|
- Verifica que la contraseña actual sea correcta.
|
|
- Comprueba que la nueva contraseña y su confirmación coincidan.
|
|
- Valida que la nueva contraseña tenga al menos 8 caracteres.
|
|
- Establece la nueva contraseña y vuelve a iniciar sesión para mantener la sesión activa.
|
|
|
|
## Firma
|
|
|
|
```python
|
|
def cambiar_contrasena(request: HttpRequest):
|
|
```
|
|
|
|
## Parámetros
|
|
|
|
| Nombre | Tipo | Descripción |
|
|
|-----------|---------------|-----------------------|
|
|
| `request` | `HttpRequest` | Petición HTTP de Django. |
|
|
|
|
## Campos del formulario POST
|
|
|
|
| Campo | Descripción |
|
|
|--------------------|--------------------------------------|
|
|
| `current_password` | Contraseña actual del usuario. |
|
|
| `new_password` | Nueva contraseña (mínimo 8 caracteres). |
|
|
| `confirm_password` | Confirmación de la nueva contraseña. |
|
|
|
|
## Redirecciones
|
|
|
|
| Caso | Destino |
|
|
|--------|------------------|
|
|
| Éxito | `portal_usuario` |
|
|
| Error | Template `tienda/editar_perfil.html` |
|
|
| GET | `editar_perfil` |
|
|
|
|
> [!NOTE]
|
|
> Tras cambiar la contraseña se llama a `auth_login` para re-autenticar al usuario y evitar que la sesión quede invalidada.
|