diff --git a/home/__pycache__/views.cpython-313.pyc b/home/__pycache__/views.cpython-313.pyc index ecb4dea..346eb7b 100644 Binary files a/home/__pycache__/views.cpython-313.pyc and b/home/__pycache__/views.cpython-313.pyc differ diff --git a/home/views.py b/home/views.py index 90a50aa..32658a8 100644 --- a/home/views.py +++ b/home/views.py @@ -820,27 +820,31 @@ def security_token_view(request): token_date = existing_token.created_at.strftime('%H:%M:%S %d-%m-%Y') if request.method == 'POST': - # Verificar si ya existe un token activo y si ha caducado - if existing_token and existing_token.expires_at > timezone.now(): - remaining_days = (existing_token.expires_at - timezone.now()).days - return JsonResponse({ - 'success': False, - 'message': f'Sólo puedes solicitar un nuevo Token de seguridad cada 7 días, faltan {remaining_days} días para generar un nuevo Token.' - }) + # Verificar si ya existe un token y si se puede generar uno nuevo después de 7 días + if existing_token: + # Comprobar si han pasado al menos 7 días desde la creación del token + days_since_creation = (timezone.now() - existing_token.created_at).days + if days_since_creation < 7: + remaining_days = 7 - days_since_creation + return JsonResponse({ + 'success': False, + 'message': f'Sólo puedes solicitar un nuevo Token de seguridad cada 7 días, faltan {remaining_days} días para generar un nuevo Token.' + }) # Generar un nuevo token token = secrets.token_urlsafe(4)[:6] expires_at = timezone.now() + timedelta(days=7) - # Eliminar tokens anteriores del usuario - SecurityToken.objects.filter(user_id=user_id).delete() + # Eliminar el token anterior y crear uno nuevo + if existing_token: + existing_token.delete() # Crear y guardar el nuevo token new_token = SecurityToken.objects.create( user_id=user_id, token=token, ip_address=ip_address, - expires_at=expires_at + expires_at=expires_at # Esta fecha solo se usa para el control de los 7 días ) # Enviar el correo con el token al usuario