You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

61 lines
1.9 KiB

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)