Merge pull request #5425 from sbwalker/dev
fix #5346 - deleting role should remove associated useroles
This commit is contained in:
@ -159,7 +159,7 @@
|
||||
}
|
||||
@if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host) && _isdeleted == "True")
|
||||
{
|
||||
<ActionDialog Header="Delete User" Message="Are You Sure You Wish To Permanently Delete This User?" Action="Delete" Security="SecurityAccessLevel.Host" Class="btn btn-danger" OnClick="@(async () => await DeleteUser())" ResourceKey="DeleteUser" />
|
||||
<ActionDialog Header="Delete User" Message="Are You Sure You Wish To Permanently Delete This User?" Action="Delete" Security="SecurityAccessLevel.Host" Class="btn btn-danger ms-1" OnClick="@(async () => await DeleteUser())" ResourceKey="DeleteUser" />
|
||||
}
|
||||
<br /><br />
|
||||
<AuditInfo CreatedBy="@_createdby" CreatedOn="@_createdon" ModifiedBy="@_modifiedby" ModifiedOn="@_modifiedon" DeletedBy="@_deletedby" DeletedOn="@_deletedon"></AuditInfo>
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Oqtane.Models;
|
||||
using Oqtane.Modules.Admin.Users;
|
||||
using Oqtane.Shared;
|
||||
|
||||
namespace Oqtane.Repository
|
||||
@ -131,6 +132,13 @@ namespace Oqtane.Repository
|
||||
public void DeleteUser(int userId)
|
||||
{
|
||||
using var db = _dbContextFactory.CreateDbContext();
|
||||
|
||||
// remove permissions for user
|
||||
foreach (var permission in db.Permission.Where(item => item.UserId == userId))
|
||||
{
|
||||
db.Permission.Remove(permission);
|
||||
}
|
||||
|
||||
var user = db.User.Find(userId);
|
||||
db.User.Remove(user);
|
||||
db.SaveChanges();
|
||||
|
Reference in New Issue
Block a user