fix #5346 - deleting role should remove associated useroles

This commit is contained in:
sbwalker
2025-07-29 09:05:37 -04:00
parent b1770ebb76
commit 658059806b
3 changed files with 19 additions and 10 deletions

View File

@ -74,18 +74,19 @@ namespace Oqtane.Repository
{
using var db = _dbContextFactory.CreateDbContext();
Role role = db.Role.Find(roleId);
// remove permissions for this role
var permissions = db.Permission.Where(item => item.SiteId == role.SiteId).ToList();
foreach (var permission in permissions)
// remove userroles for role
foreach (var userrole in db.UserRole.Where(item => item.RoleId == roleId))
{
if (permission.RoleId == roleId)
{
db.Permission.Remove(permission);
}
db.UserRole.Remove(userrole);
}
// remove permissions for role
foreach (var permission in db.Permission.Where(item => item.RoleId == roleId))
{
db.Permission.Remove(permission);
}
Role role = db.Role.Find(roleId);
db.Role.Remove(role);
db.SaveChanges();
}