feat: 管理端返回权限过滤的菜单树

This commit is contained in:
2025-12-04 22:06:05 +08:00
parent 7f52af34e5
commit 15ccff5407
5 changed files with 365 additions and 1 deletions

View File

@@ -94,10 +94,25 @@ public sealed class AdminAuthService(
{
var user = await userRepository.FindByIdAsync(userId, cancellationToken)
?? throw new BusinessException(ErrorCodes.NotFound, "用户不存在");
// 1. 返回档案
return await BuildProfileAsync(user, cancellationToken);
}
/// <summary>
/// 获取当前用户可见菜单树。
/// </summary>
/// <param name="userId">用户 ID。</param>
/// <param name="cancellationToken">取消令牌。</param>
/// <returns>菜单树。</returns>
public async Task<IReadOnlyList<MenuNodeDto>> GetMenuTreeAsync(long userId, CancellationToken cancellationToken = default)
{
// 1. 读取档案以获取权限
var profile = await GetProfileAsync(userId, cancellationToken);
// 2. 生成菜单树
var menu = AdminMenuProvider.BuildMenuTree(profile.Permissions);
return menu;
}
/// <summary>
/// 获取指定用户的权限概览(校验当前租户)。
/// </summary>