feat: 新增角色查看主题权限

This commit is contained in:
橙子
2025-01-19 18:40:42 +08:00
parent 7994e66283
commit 9960c63f59
14 changed files with 182 additions and 290 deletions

View File

@@ -59,9 +59,6 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
private ISqlSugarRepository<PlateAggregateRoot> _plateEntityRepository { get; set; }
/// <summary>
/// 单查
@@ -117,15 +114,24 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
//组装标签
var lableDic=await _discussLableRepository.GetDiscussLableCacheMapAsync();
foreach (var lableId in output.DiscussLables)
foreach (var lableId in output.DiscussLableIds)
{
if (lableDic.TryGetValue(lableId,out var item))
{
output.Lables.Add(item.Adapt<DiscussLableGetOutputDto>());
}
}
await _forumManager.VerifyDiscussPermissionAsync(output.Id,CurrentUser.Id);
//如果没有权限
if (!await _forumManager.VerifyDiscussPermissionAsync(output.Id,CurrentUser.Id, CurrentUser.Roles))
{
output.SetNoPermission();
}
else
{
output.SetPassPermission();
}
await _localEventBus.PublishAsync(new SeeDiscussEventArgs
{ DiscussId = output.Id, OldSeeNum = output.SeeNum });
return output;
@@ -179,10 +185,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
(await _agreeRepository._DbQueryable.Where(x => discussId.Contains(x.DiscussId)).ToListAsync())
.GroupBy(x => x.DiscussId)
.ToDictionary(x => x.Key, y => y.Select(y => y.CreatorId).ToList());
//查询完主题之后,要过滤一下私有的主题信息
items.ApplyPermissionTypeFilter(CurrentUser.Id ?? Guid.Empty);
var levelCacheDic= await _bbsUserManager.GetLevelCacheMapAsync();
var lableDic=await _discussLableRepository.GetDiscussLableCacheMapAsync();
@@ -199,7 +202,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
}
}
foreach (var lableId in x.DiscussLables)
foreach (var lableId in x.DiscussLableIds)
{
if (lableDic.TryGetValue(lableId,out var item))
{
@@ -236,7 +239,6 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
Address = user.Address,
Age = user.Age,
CreationTime = user.CreationTime,
Level = info.Level,
Introduction = user.Introduction,
Icon = user.Icon,
@@ -255,7 +257,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
output?.ForEach(x =>
{
x.User.LevelName = levelCacheDic[x.User.Level].Name;
foreach (var lableId in x.DiscussLables)
foreach (var lableId in x.DiscussLableIds)
{
if (lableDic.TryGetValue(lableId,out var item))
{