diff --git a/Infrastructure/GlobalConstant.cs b/Infrastructure/GlobalConstant.cs index 6139938..900c53f 100644 --- a/Infrastructure/GlobalConstant.cs +++ b/Infrastructure/GlobalConstant.cs @@ -13,5 +13,9 @@ namespace Infrastructure /// 管理员权限 /// public static string AdminPerm = "*:*:*"; + /// + /// 管理员角色 + /// + public static string AdminRole = "admin"; } } diff --git a/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs b/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs index a677859..817ab46 100644 --- a/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs +++ b/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs @@ -43,10 +43,15 @@ namespace ZR.Admin.WebApi.Filters if (info != null && info?.UserId > 0) { List perms = info.Permissions; + List rolePerms = info.RoleIds; if (perms.Exists(f => f.Equals(GlobalConstant.AdminPerm))) { HasPermi = true; } + else if (rolePerms.Exists(f => f.Equals(GlobalConstant.AdminRole))) + { + HasPermi = true; + } else if (!string.IsNullOrEmpty(Permission)) { HasPermi = perms.Exists(f => f.ToLower() == Permission.ToLower()); @@ -55,7 +60,7 @@ namespace ZR.Admin.WebApi.Filters bool isDemoMode = ConfigUtils.Instance.GetAppConfig("DemoMode", false); //演示公开环境屏蔽权限 - string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear", "send" ,"export", "upload", "common"}; + string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear", "send", "export", "upload", "common" }; if (isDemoMode && denyPerms.Any(f => Permission.ToLower().Contains(f))) { context.Result = new JsonResult(new { code = ResultCode.FORBIDDEN, msg = "演示模式 , 不允许操作" });