fix #5346 - deleting role should remove associated permissions
This commit is contained in:
@ -2,6 +2,8 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
|
using Oqtane.Modules.Admin.Users;
|
||||||
|
using Oqtane.Shared;
|
||||||
|
|
||||||
namespace Oqtane.Repository
|
namespace Oqtane.Repository
|
||||||
{
|
{
|
||||||
@ -71,7 +73,19 @@ namespace Oqtane.Repository
|
|||||||
public void DeleteRole(int roleId)
|
public void DeleteRole(int roleId)
|
||||||
{
|
{
|
||||||
using var db = _dbContextFactory.CreateDbContext();
|
using var db = _dbContextFactory.CreateDbContext();
|
||||||
|
|
||||||
Role role = db.Role.Find(roleId);
|
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)
|
||||||
|
{
|
||||||
|
if (permission.RoleId == roleId)
|
||||||
|
{
|
||||||
|
db.Permission.Remove(permission);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
db.Role.Remove(role);
|
db.Role.Remove(role);
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user