From 0a1095bfc6533506af0cd496187782ab2760a425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Tue, 19 Dec 2023 12:40:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90=E7=9A=84=E6=89=A9=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ArticleService.cs | 5 ++-- .../Extensions/CurrestUserExtensions.cs | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Extensions/CurrestUserExtensions.cs diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/ArticleService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/ArticleService.cs index bdbd5157..8fc25138 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/ArticleService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/ArticleService.cs @@ -11,6 +11,7 @@ using Yi.Framework.Bbs.Application.Contracts.Dtos.Article; using Yi.Framework.Bbs.Application.Contracts.Dtos.Plate; using Yi.Framework.Bbs.Application.Contracts.IServices; using Yi.Framework.Bbs.Domain.Entities; +using Yi.Framework.Bbs.Domain.Extensions; using Yi.Framework.Bbs.Domain.Repositories; using Yi.Framework.Bbs.Domain.Shared.Consts; using Yi.Framework.Core.Extensions; @@ -47,7 +48,7 @@ namespace Yi.Framework.Bbs.Application.Services RefAsync total = 0; var entities = await _articleRepository._DbQueryable.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name!)) - //.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Name.Contains(input.Code!)) + //.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Name.Contains(input.Code!)) .WhereIF(input.StartTime is not null && input.EndTime is not null, x => x.CreationTime >= input.StartTime && x.CreationTime <= input.EndTime) .ToPageListAsync(input.SkipCount, input.MaxResultCount, total); return new PagedResultDto(total, await MapToGetListOutputDtosAsync(entities)); @@ -123,7 +124,7 @@ namespace Yi.Framework.Bbs.Application.Services //主题的创建者不是当前用户,同时,没有权限或者超级管理 //false & true & false ,三个条件任意满意一个,即可成功使用||,最后取反,一个都不满足 // - if (userId != CurrentUser.Id && !UserConst.Admin.Equals(this.CurrentUser.UserName) && this.LazyServiceProvider.GetRequiredService().HttpContext.GetUserPermissions(TokenTypeConst.Permission).Contains("bbs:discuss:add")) + if (userId != CurrentUser.Id && !UserConst.Admin.Equals(this.CurrentUser.UserName) && CurrentUser.GetUserPermissions().Contains("bbs:discuss:add")) { throw new UserFriendlyException("无权限在其他用户主题中创建子文章"); } diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Extensions/CurrestUserExtensions.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Extensions/CurrestUserExtensions.cs new file mode 100644 index 00000000..81989d44 --- /dev/null +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Extensions/CurrestUserExtensions.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.Users; +using Yi.Framework.Rbac.Domain.Shared.Consts; + +namespace Yi.Framework.Bbs.Domain.Extensions +{ + public static class CurrestUserExtensions + { + /// + /// 获取用户权限codes + /// + /// + /// + public static List GetUserPermissions(this ICurrentUser currentUser) + { + return currentUser.FindClaims(TokenTypeConst.Permission).Select(x => x.Value).ToList(); + + } + } +}