from django.shortcuts import render, redirect, get_object_or_404
|
|
|
|
from rest_framework.response import Response
|
|
from rest_framework.decorators import api_view
|
|
|
|
from .serializers import ReyMotaUserSerializer
|
|
|
|
from .models import ReyMotaUser, PerfilUsuario
|
|
|
|
from django.contrib import messages
|
|
|
|
# Create your views here.
|
|
|
|
|
|
def reactivar_cuenta(request, token):
|
|
# Buscar el perfil sin generar error 404
|
|
perfil = PerfilUsuario.objects.filter(token_activacion=token).first()
|
|
|
|
if not perfil:
|
|
messages.error(request, "❌ Este enlace ya ha sido utilizado o es invalido.")
|
|
return redirect("login")
|
|
|
|
usuario = perfil.usuario
|
|
|
|
if request.method == "POST":
|
|
if perfil.acepto_politica:
|
|
messages.error(request, "❌ Este enlace ya ha sido utilizado.")
|
|
return redirect("login")
|
|
|
|
# Marcar que el usuario ha aceptado la política
|
|
perfil.acepto_politica = True
|
|
perfil.token_activacion = None # Eliminar el token para que no se pueda reutilizar
|
|
perfil.save()
|
|
|
|
usuario.is_active = True
|
|
usuario.save()
|
|
|
|
messages.success(request, "Tu cuenta ha sido reactivada correctamente.")
|
|
|
|
return redirect("login")
|
|
|
|
return render(request, "registration/reactivar_cuenta.html", {"usuario": usuario})
|
|
|
|
|
|
@api_view(['GET'])
|
|
def api_lista_usuarios(request):
|
|
"""Devuelve la lista de todos los usuarios."""
|
|
usuarios = ReyMotaUser.objects.all()
|
|
serializer = ReyMotaUserSerializer(usuarios, many=True)
|
|
return Response(serializer.data)
|
|
|
|
|
|
@api_view(['GET'])
|
|
def api_detalle_usuario(request, usuario_id):
|
|
"""Devuelve los detalles de un usuario específico."""
|
|
try:
|
|
usuario = ReyMotaUser.objects.get(id=usuario_id)
|
|
serializer = ReyMotaUserSerializer(usuario)
|
|
return Response(serializer.data)
|
|
except ReyMotaUser.DoesNotExist:
|
|
return Response({'error': 'Canción no encontrada'}, status=404)
|