diff --git a/Marco.Pms.Services/Controllers/RolesController.cs b/Marco.Pms.Services/Controllers/RolesController.cs index 8d654df..b5e5dcd 100644 --- a/Marco.Pms.Services/Controllers/RolesController.cs +++ b/Marco.Pms.Services/Controllers/RolesController.cs @@ -175,6 +175,13 @@ namespace MarcoBMS.Services.Controllers { return BadRequest(new { Message = "Feature Permission is required." }); } + + bool roleExists = _context.ApplicationRoles + .Any(r => r.TenantId == TenantId && r.Role.ToLower() == createRoleDto.Role.ToLower());// assuming role name is unique per tenant + if (roleExists) + { + return BadRequest(new {message = "Role already exists." }); + } ApplicationRole role = createRoleDto.ToApplicationRoleFromCreateDto(TenantId); _context.ApplicationRoles.Add(role); @@ -202,6 +209,7 @@ namespace MarcoBMS.Services.Controllers if (id != updateRoleDto.Id.ToString()) return BadRequest("Role ID mismatch"); + try { int TenantId = GetTenantId();