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")
|
@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 />
|
<br /><br />
|
||||||
<AuditInfo CreatedBy="@_createdby" CreatedOn="@_createdon" ModifiedBy="@_modifiedby" ModifiedOn="@_modifiedon" DeletedBy="@_deletedby" DeletedOn="@_deletedon"></AuditInfo>
|
<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();
|
using var db = _dbContextFactory.CreateDbContext();
|
||||||
|
|
||||||
Role role = db.Role.Find(roleId);
|
// remove userroles for role
|
||||||
|
foreach (var userrole in db.UserRole.Where(item => item.RoleId == 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.UserRole.Remove(userrole);
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove permissions for role
|
||||||
|
foreach (var permission in db.Permission.Where(item => item.RoleId == roleId))
|
||||||
{
|
{
|
||||||
db.Permission.Remove(permission);
|
db.Permission.Remove(permission);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
Role role = db.Role.Find(roleId);
|
||||||
db.Role.Remove(role);
|
db.Role.Remove(role);
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ 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;
|
using Oqtane.Shared;
|
||||||
|
|
||||||
namespace Oqtane.Repository
|
namespace Oqtane.Repository
|
||||||
@ -131,6 +132,13 @@ namespace Oqtane.Repository
|
|||||||
public void DeleteUser(int userId)
|
public void DeleteUser(int userId)
|
||||||
{
|
{
|
||||||
using var db = _dbContextFactory.CreateDbContext();
|
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);
|
var user = db.User.Find(userId);
|
||||||
db.User.Remove(user);
|
db.User.Remove(user);
|
||||||
db.SaveChanges();
|
db.SaveChanges();
|
||||||
|
Reference in New Issue
Block a user