ソースを参照

菜单返回正常

lcl 11 ヶ月 前
コミット
ff39f44f76

+ 9 - 3
Controllers/Base/SysMenuController.cs

@@ -16,8 +16,6 @@ namespace Controllers
     /// <summary>
     /// 系统菜单
     /// </summary>
-    [Verify]
-    [Route("/system/menu")]
     [ApiExplorerSettings(GroupName = "sys")]
     public class SysMenuController : BaseController
     {
@@ -39,7 +37,6 @@ namespace Controllers
         /// 获取菜单树列表
         /// </summary>
         /// <returns></returns>
-        [ActionPermissionFilter(Permission = "system:menu:list")]
         [HttpGet("treelist")]
         public IActionResult TreeMenuList([FromQuery] MenuQueryDto menu)
         {
@@ -103,6 +100,15 @@ namespace Controllers
             });
         }
 
+        [Verify]
+        [HttpGet("/v1/skb/sysServer/menu")]
+        public IActionResult GetMenus()
+        {
+            long userId = HttpContext.GetUId();
+            var menus = sysMenuService.SelectMenuList(new MenuQueryDto(), userId);
+            return SUCCESS(sysMenuService.BuildMenuTreeSelect(menus));
+        }
+
         /// <summary>
         /// 修改菜单
         /// </summary>

+ 6 - 2
Extensions/HttpContextExtension.cs

@@ -4,7 +4,9 @@ using System.Text.RegularExpressions;
 using Base;
 using Extensions;
 using IPTools.Core;
+using Model.Base;
 using UAParser;
+using Util;
 
 namespace Extensions
 {
@@ -73,8 +75,10 @@ namespace Extensions
         /// <returns></returns>
         public static long GetUId(this HttpContext context)
         {
-            var uid = context.User.FindFirstValue(ClaimTypes.PrimarySid);
-            return !string.IsNullOrEmpty(uid) ? long.Parse(uid) : 0;
+            TokenModel loginUser = JwtUtil.GetLoginUser(context);
+            return loginUser.UserId;
+            // var uid = context.User.FindFirstValue(ClaimTypes.PrimarySid);
+            // return !string.IsNullOrEmpty(uid) ? long.Parse(uid) : 0;
         }
 
         /// <summary>

+ 7 - 1
Filters/AuthorizationFilter.cs

@@ -34,7 +34,13 @@ namespace Filters
                 content = context.HttpContext.GetQueryString();
                 content = content.Substring(content.IndexOf("=") + 1);
                 content = Decrypt(content);
-                request.QueryString = new QueryString("value=" + content);
+                Dictionary<string, string> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(content);
+                string queryString = "";
+                foreach(string key in dic.Keys)
+                {
+                    queryString += key + "=" + dic[key] + "&";
+                }
+                request.QueryString = new QueryString("?" + queryString.TrimEnd('&'));
             }
             else if(context.HttpContext.Request.Method.ToLower() == "delete")
             {

+ 28 - 14
Filters/GlobalActionMonitor.cs

@@ -36,7 +36,18 @@ namespace Middleware
             if(context.HttpContext.Request.Method.ToLower() == "get")
             {
                 content = context.HttpContext.GetQueryString();
-                content = content.Substring(content.IndexOf("=") + 1);
+                content = content.Substring(content.IndexOf("?") + 1);
+                if(!string.IsNullOrEmpty(content))
+                {
+                    string jsonString = "";
+                    string[] dataList = content.Split('&');
+                    foreach(string sub in dataList)
+                    {
+                        string[] item = sub.Split('=');
+                        jsonString += "\"" + item[0] + "\":\"" + item[1] + "\",";
+                    }
+                    content = "{" + jsonString.TrimEnd(',') + "}";
+                }
             }
             else
             {
@@ -104,20 +115,23 @@ namespace Middleware
             }
             else
             {
-                string ParamName = context.ActionArguments.Keys.First();
-                object ParamValue = context.ActionArguments.Values.First();
-                // ParamValue = DesDecrypt(ParamValue.ToString());
-                if(ParamValue.GetType() == typeof(int))
-                {
-                    ParamValue = (int)ParamValue;
-                }
-                if(context.ActionArguments.ContainsKey(ParamName))
-                {
-                    context.ActionArguments[ParamName] = ParamValue;
-                }
-                else
+                if(context.ActionDescriptor.Parameters.Count > 0)
                 {
-                    context.ActionArguments.Add(ParamName, ParamValue);
+                    string ParamName = context.ActionArguments.Keys.First();
+                    object ParamValue = context.ActionArguments.Values.First();
+                    // ParamValue = DesDecrypt(ParamValue.ToString());
+                    if(ParamValue.GetType() == typeof(int))
+                    {
+                        ParamValue = (int)ParamValue;
+                    }
+                    if(context.ActionArguments.ContainsKey(ParamName))
+                    {
+                        context.ActionArguments[ParamName] = ParamValue;
+                    }
+                    else
+                    {
+                        context.ActionArguments.Add(ParamName, ParamValue);
+                    }
                 }
             }
             string msg = string.Empty;

+ 3 - 3
Model/Dto/Base/MenuDto.cs

@@ -81,9 +81,9 @@ namespace Dto
 
     public class MenuQueryDto
     {
-        public string MenuName { get; set; }
-        public string Visible { get; set; }
-        public string DelFlag { get; set; }
+        public string? MenuName { get; set; }
+        public string? Visible { get; set; }
+        public string? DelFlag { get; set; }
         public string MenuTypeIds { get; set; } = string.Empty;
         public int? ParentId { get; set; }
         public string[] MenuTypeIdArr

+ 1 - 1
SqlSugar/DataPermi.cs

@@ -45,7 +45,7 @@ namespace SqlSugar
             var user = JwtUtil.GetLoginUser(App.HttpContext);
             if (user == null) return;
             //管理员不过滤
-            if (user.RoleIds.Any(f => f.Equals(GlobalConstant.AdminRole))) return;
+            // if (user.RoleIds.Any(f => f.Equals(GlobalConstant.AdminRole))) return;
             var db = DbScoped.SugarScope.GetConnectionScope(configId);
             // var expUser = Expressionable.Create<SysUser>();
             // var expRole = Expressionable.Create<SysRole>();