Просмотр исходного кода

修改角色权限验证跳过sysadmin

dss 2 лет назад
Родитель
Сommit
65fafbff87
1 измененных файлов с 15 добавлено и 0 удалено
  1. 15 0
      src/Hotline.Repository.SqlSugar/System/SystemAuthorityRepository.cs

+ 15 - 0
src/Hotline.Repository.SqlSugar/System/SystemAuthorityRepository.cs

@@ -18,6 +18,10 @@ namespace Hotline.Repository.SqlSugar.System
         /// <returns></returns>
         public async Task<IReadOnlyList<SystemMenu>> GetMyMenu(string[] roles)
         {
+            if (roles.Contains("sysadmin"))
+            {
+                return await Db.Queryable<SystemMenu>().OrderBy(x => x.DisplayOrder).ToTreeAsync(x => x.children, it => it.ParentId, "");
+            }
             var list = await Db.Queryable<SystemAuthority>()
                 .Where(x => roles.Contains(x.RoleCode)).ToListAsync();
             var menuarr = new List<string>();
@@ -36,6 +40,10 @@ namespace Hotline.Repository.SqlSugar.System
         /// <returns></returns>
         public async Task<IReadOnlyList<string>> GetMyButton(string[] roles)
         {
+            if (roles.Contains("sysadmin"))
+            {
+                return await Db.Queryable<SystemButton>().Select(x => x.PermissionCode).ToListAsync();
+            }
             var list = await Db.Queryable<SystemAuthority>()
                 .Where(x => roles.Contains(x.RoleCode)).ToListAsync();
             var buttonarr = new List<string>();
@@ -53,6 +61,13 @@ namespace Hotline.Repository.SqlSugar.System
         /// <returns></returns>
         public IReadOnlyList<string> GetPermission(List<string> roles)
         {
+            if (roles.Contains("sysadmin"))
+            {
+                var menucodelist = Db.Queryable<SystemMenu>().Select(x => x.PermissionCode).ToList();
+                var buttoncodelist = Db.Queryable<SystemButton>().Select(x => x.PermissionCode).ToList();
+                menucodelist.AddRange(buttoncodelist);
+                return menucodelist;
+            }
             var list = Db.Queryable<SystemAuthority>()
                 .Where(x => roles.Contains(x.RoleCode)).ToList();
             var permissionarr = new List<string>();