Fix: Usuarios Admin No Pueden Tener Avisos Propios

This commit is contained in:
2026-02-19 19:59:23 -03:00
parent 042cd8c6f1
commit 8569f57a62
2 changed files with 20 additions and 1 deletions

View File

@@ -349,10 +349,25 @@ public class AdsV2Controller : ControllerBase
{
if (request.TargetUserID.HasValue)
{
// Validación adicional: Asegurar que el ID seleccionado no sea Admin (por seguridad extra)
var targetUser = await _context.Users.FindAsync(request.TargetUserID.Value);
if (targetUser != null && targetUser.UserType == 3)
{
return BadRequest("No se puede asignar un aviso a una cuenta de Administrador.");
}
finalUserId = request.TargetUserID.Value;
}
else if (!string.IsNullOrEmpty(request.GhostUserEmail))
{
// Verificamos si el email escrito manualmente pertenece a un Admin existente
var existingAdmin = await _context.Users
.AnyAsync(u => u.Email == request.GhostUserEmail && u.UserType == 3);
if (existingAdmin)
{
return BadRequest($"El correo '{request.GhostUserEmail}' pertenece a un Administrador. No puedes asignar avisos a administradores.");
}
// Pasamos nombre y apellido por separado
var ghost = await _identityService.CreateGhostUserAsync(
request.GhostUserEmail,