From df5224cf12dd0b084125f9537a7c73634ad92781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= <454313500@qq.com> Date: Sun, 28 Apr 2024 15:10:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9D=83=E9=99=90=E7=89=B9=E6=80=A7?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PermissionGlobalAttribute.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Authorization/PermissionGlobalAttribute.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Authorization/PermissionGlobalAttribute.cs index 6183629d..3d5644cc 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Authorization/PermissionGlobalAttribute.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain/Authorization/PermissionGlobalAttribute.cs @@ -20,12 +20,24 @@ namespace Yi.Framework.Rbac.Domain.Authorization public override void OnActionExecuting(ActionExecutingContext context) { if (context.ActionDescriptor is not ControllerActionDescriptor controllerActionDescriptor) return; - PermissionAttribute? perAttribute = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) - .FirstOrDefault(a => a.GetType().Equals(typeof(PermissionAttribute))) as PermissionAttribute; + List? perAttributes = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) + .Where(a => a.GetType().Equals(typeof(PermissionAttribute))) + .Select(x => x as PermissionAttribute) + .ToList()!; //空对象直接返回 - if (perAttribute is null) return; + if (perAttributes.Count==0) return; + + var result = false; + foreach (var perAttribute in perAttributes) + { + result = _permissionHandler.IsPass(perAttribute.Code); + //存在有一个不满,直接跳出 + if (!result) + { + break; + } + } - var result = _permissionHandler.IsPass(perAttribute.Code); if (!result) {