From 4a4edfa857dbbd979c2836596627d8476a12cfb0 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 15 Oct 2025 16:20:06 +0800 Subject: [PATCH 1/2] Fix #5715: delete role settings. --- Oqtane.Server/Repository/RoleRepository.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Oqtane.Server/Repository/RoleRepository.cs b/Oqtane.Server/Repository/RoleRepository.cs index 05de9047..6f8573e4 100644 --- a/Oqtane.Server/Repository/RoleRepository.cs +++ b/Oqtane.Server/Repository/RoleRepository.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.EntityFrameworkCore; using Oqtane.Models; +using Oqtane.Shared; namespace Oqtane.Repository { @@ -95,6 +96,12 @@ namespace Oqtane.Repository db.Permission.Remove(permission); } + //remove settings for role + foreach (var setting in db.Setting.Where(item => item.EntityName == EntityNames.Role && item.EntityId == roleId)) + { + db.Setting.Remove(setting); + } + Role role = db.Role.Find(roleId); db.Role.Remove(role); db.SaveChanges(); From 9135894053e4f42dd7f1d3d83923d6e94b454cdd Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 15 Oct 2025 22:48:34 +0800 Subject: [PATCH 2/2] Fix #5715: delete settings with api. --- Oqtane.Server/Repository/RoleRepository.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Oqtane.Server/Repository/RoleRepository.cs b/Oqtane.Server/Repository/RoleRepository.cs index 6f8573e4..9239155a 100644 --- a/Oqtane.Server/Repository/RoleRepository.cs +++ b/Oqtane.Server/Repository/RoleRepository.cs @@ -20,10 +20,12 @@ namespace Oqtane.Repository public class RoleRepository : IRoleRepository { private readonly IDbContextFactory _dbContextFactory; + private readonly ISettingRepository _settings; - public RoleRepository(IDbContextFactory dbContextFactory) + public RoleRepository(IDbContextFactory dbContextFactory, ISettingRepository settings) { _dbContextFactory = dbContextFactory; + _settings = settings; } public IEnumerable GetRoles(int siteId) @@ -97,10 +99,7 @@ namespace Oqtane.Repository } //remove settings for role - foreach (var setting in db.Setting.Where(item => item.EntityName == EntityNames.Role && item.EntityId == roleId)) - { - db.Setting.Remove(setting); - } + _settings.DeleteSettings(EntityNames.Role, roleId); Role role = db.Role.Find(roleId); db.Role.Remove(role);