fix: allow super admin tenant-scoped role ops

This commit is contained in:
2025-12-05 23:07:31 +08:00
parent 1060ab13d6
commit d7772b0f8d
13 changed files with 64 additions and 28 deletions

View File

@@ -16,7 +16,7 @@ public sealed class BindRolePermissionsCommandHandler(
public async Task<bool> Handle(BindRolePermissionsCommand request, CancellationToken cancellationToken)
{
// 1. 获取租户上下文
var tenantId = tenantProvider.GetCurrentTenantId();
var tenantId = request.TenantId ?? tenantProvider.GetCurrentTenantId();
// 2. 覆盖式绑定权限
await rolePermissionRepository.ReplaceRolePermissionsAsync(tenantId, request.RoleId, request.PermissionIds, cancellationToken);

View File

@@ -18,7 +18,7 @@ public sealed class CreateRoleCommandHandler(
public async Task<RoleDto> Handle(CreateRoleCommand request, CancellationToken cancellationToken)
{
// 1. 获取租户上下文
var tenantId = tenantProvider.GetCurrentTenantId();
var tenantId = request.TenantId ?? tenantProvider.GetCurrentTenantId();
// 2. 构建角色实体
var role = new Role

View File

@@ -16,7 +16,7 @@ public sealed class DeleteRoleCommandHandler(
public async Task<bool> Handle(DeleteRoleCommand request, CancellationToken cancellationToken)
{
// 1. 获取租户上下文
var tenantId = tenantProvider.GetCurrentTenantId();
var tenantId = request.TenantId ?? tenantProvider.GetCurrentTenantId();
// 2. 删除角色
await roleRepository.DeleteAsync(request.RoleId, tenantId, cancellationToken);

View File

@@ -20,7 +20,7 @@ public sealed class RoleDetailQueryHandler(
public async Task<RoleDetailDto?> Handle(RoleDetailQuery request, CancellationToken cancellationToken)
{
// 1. 获取租户上下文并查询角色
var tenantId = tenantProvider.GetCurrentTenantId();
var tenantId = request.TenantId ?? tenantProvider.GetCurrentTenantId();
var role = await roleRepository.FindByIdAsync(request.RoleId, tenantId, cancellationToken);
if (role is null)
{

View File

@@ -18,7 +18,7 @@ public sealed class SearchRolesQueryHandler(
public async Task<PagedResult<RoleDto>> Handle(SearchRolesQuery request, CancellationToken cancellationToken)
{
// 1. 获取租户上下文并查询角色
var tenantId = tenantProvider.GetCurrentTenantId();
var tenantId = request.TenantId ?? tenantProvider.GetCurrentTenantId();
var roles = await roleRepository.SearchAsync(tenantId, request.Keyword, cancellationToken);
// 2. 排序

View File

@@ -17,7 +17,7 @@ public sealed class UpdateRoleCommandHandler(
public async Task<RoleDto?> Handle(UpdateRoleCommand request, CancellationToken cancellationToken)
{
// 1. 获取租户上下文并查询角色
var tenantId = tenantProvider.GetCurrentTenantId();
var tenantId = request.TenantId ?? tenantProvider.GetCurrentTenantId();
var role = await roleRepository.FindByIdAsync(request.RoleId, tenantId, cancellationToken);
if (role == null)
{