diff --git a/Backend/MotoresArgentinosV2.API/Controllers/AdminController.cs b/Backend/MotoresArgentinosV2.API/Controllers/AdminController.cs index b272b60..7aa3ba2 100644 --- a/Backend/MotoresArgentinosV2.API/Controllers/AdminController.cs +++ b/Backend/MotoresArgentinosV2.API/Controllers/AdminController.cs @@ -452,7 +452,11 @@ public class AdminController : ControllerBase if (string.IsNullOrEmpty(q)) return Ok(new List()); var users = await _context.Users - .Where(u => (u.Email ?? "").Contains(q) || (u.UserName ?? "").Contains(q) || (u.FirstName ?? "").Contains(q) || (u.LastName ?? "").Contains(q)) + .Where(u => + ((u.Email ?? "").Contains(q) || (u.UserName ?? "").Contains(q) || (u.FirstName ?? "").Contains(q) || (u.LastName ?? "").Contains(q)) + && + u.UserType != 3 // Excluir usuarios tipo 3 de la búsqueda para asignar avisos, ya que no pueden ser asignados a nuevos avisos en V2. + ) .Take(10) .Select(u => new { u.UserID, u.UserName, u.Email, u.FirstName, u.LastName, u.PhoneNumber, u.IsBlocked }) .ToListAsync(); diff --git a/Backend/MotoresArgentinosV2.API/Controllers/AdsV2Controller.cs b/Backend/MotoresArgentinosV2.API/Controllers/AdsV2Controller.cs index 2aafa1f..6c7439e 100644 --- a/Backend/MotoresArgentinosV2.API/Controllers/AdsV2Controller.cs +++ b/Backend/MotoresArgentinosV2.API/Controllers/AdsV2Controller.cs @@ -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,