1
hutongqing
2025-01-16 8f1bf1cd625b0f066d26396854e83fbf235a936e
1
已删除3个文件
已修改5个文件
已添加1个文件
109 ■■■■■ 文件已修改
代码管理/WMS/WIDESEA_WMSClient/src/views/system/PermissionPDA.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/44fbbe1e-6bf2-4799-85ed-f204f13fc099.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/471d11b3-4b7d-4bf3-869c-9513dd71c560.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c55dc563-0ab2-4a62-9fbf-42cb95118eea.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ISystemService/ISys_RoleService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/system/PermissionPDA.vue
@@ -248,7 +248,7 @@
          });
        }
      });
      let url = `api/Sys_Role/SavePermission?roleId=${selectId.value}`;
      let url = `api/Sys_Role/SavePermissionPDA?roleId=${selectId.value}`;
      http.post(url, userPermissions, true).then((result) => {
        $message[result.status ? "success" : "error"](result.message);
      });
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/44fbbe1e-6bf2-4799-85ed-f204f13fc099.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/471d11b3-4b7d-4bf3-869c-9513dd71c560.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c55dc563-0ab2-4a62-9fbf-42cb95118eea.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ISystemService/ISys_RoleService.cs
@@ -29,5 +29,7 @@
        WebResponseContent GetUserTreePermissionPDA(int RoleId);
        WebResponseContent SavePermission(List<UserPermissionDTO> userPermissions, int roleId);
        WebResponseContent SavePermissionPDA(List<UserPermissionDTO> userPermissions, int roleId);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
@@ -80,7 +80,7 @@
                sugarQueryable1 = sugarQueryable1.Where(whereSto);
                EntityProperties.ValidatePageOptions(options, ref sugarQueryable1);
                string whereLo = GetDataRole(typeof(Dt_StockInfo));
                string whereLo = GetDataRole(typeof(Dt_LocationInfo));
                ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>().Where(whereLo);
                EntityProperties.ValidatePageOptions(options, ref sugarQueryable);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs
@@ -278,9 +278,104 @@
                //当前用户的权限
                List<Permissions> permissions = _MenuRepository.GetPermissions(App.User.RoleId);
                List<int> menuIds = _MenuRepository.QueryData(x => x.MenuId, x => x.MenuType == 1);
                List<int> originalMeunIds = new List<int>();
                //被分配角色的权限
                List<Sys_RoleAuth> roleAuths = _RoleAuthRepository.QueryData(x => x.RoleId == roleId);
                List<Sys_RoleAuth> roleAuths = _RoleAuthRepository.QueryData(x => x.RoleId == roleId && menuIds.Contains(x.MenuId));
                List<Sys_RoleAuth> updateAuths = new List<Sys_RoleAuth>();
                foreach (UserPermissionDTO x in userPermissions)
                {
                    Permissions per = permissions.FirstOrDefault(p => p.MenuId == x.Id);
                    //不能分配超过当前用户的权限
                    if (per == null) continue;
                    //per.UserAuthArr.Contains(a.Value)校验权限范围
                    string[] arr = x.Actions == null || x.Actions.Count == 0
                      ? new string[0]
                      : x.Actions.Where(a => per.UserAuthArr.Contains(a.Value))
                      .Select(s => s.Value).ToArray();
                    //如果当前权限没有分配过,设置Auth_Id默认为0,表示新增的权限
                    var auth = roleAuths.Where(r => r.MenuId == x.Id).Select(s => new { s.AuthId, s.AuthValue, s.MenuId }).FirstOrDefault();
                    string newAuthValue = string.Join(",", arr);
                    //权限没有发生变化则不处理
                    if (auth == null || auth.AuthValue != newAuthValue)
                    {
                        updateAuths.Add(new Sys_RoleAuth()
                        {
                            RoleId = roleId,
                            MenuId = x.Id,
                            AuthValue = string.Join(",", arr),
                            AuthId = auth == null ? 0 : auth.AuthId,
                            ModifyDate = DateTime.Now,
                            Modifier = App.User.UserName,
                            CreateDate = DateTime.Now,
                            Creater = App.User.UserName
                        });
                    }
                    else
                    {
                        originalMeunIds.Add(auth.MenuId);
                    }
                }
                //更新权限
                _RoleAuthRepository.UpdateData(updateAuths);
                //新增的权限
                _RoleAuthRepository.AddData(updateAuths);
                //获取权限取消的权限
                int[] authIds = roleAuths.Where(x => userPermissions.Select(u => u.Id)
                 .ToList().Contains(x.MenuId) || originalMeunIds.Contains(x.MenuId))
                .Select(s => s.AuthId)
                .ToArray();
                List<Sys_RoleAuth> delAuths = roleAuths.Where(x => x.AuthValue != "" && !authIds.Contains(x.AuthId)).ToList();
                delAuths.ForEach(x =>
                {
                    x.AuthValue = "";
                });
                //将取消的权限设置为""
                _RoleAuthRepository.DeleteData(delAuths);
                int addCount = updateAuths.Where(x => x.AuthId <= 0).Count();
                int updateCount = updateAuths.Where(x => x.AuthId > 0).Count();
                string _version = DateTime.Now.ToString("yyyyMMddHHMMssfff");
                content.OK($"保存成功:新增加配菜单权限{addCount}条,更新菜单{updateCount}条,删除权限{delAuths.Count}条");
            }
            catch (Exception ex)
            {
                message = "异常信息:" + ex.Message + ex.StackTrace + ",";
            }
            return content;
        }
        /// <summary>
        /// ä¿å­˜è§’色权限
        /// </summary>
        /// <param name="userPermissions"></param>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public WebResponseContent SavePermissionPDA(List<UserPermissionDTO> userPermissions, int roleId)
        {
            WebResponseContent content = new WebResponseContent();
            string message = "";
            try
            {
                if (!GetAllChildren(App.User.RoleId).Exists(x => x.Id == roleId))
                    return WebResponseContent.Instance.Error("没有权限修改此角色的权限信息");
                //当前用户的权限
                List<Permissions> permissions = _MenuRepository.GetPermissions(App.User.RoleId);
                List<int> originalMeunIds = new List<int>();
                List<int> menuIds = _MenuRepository.QueryData(x => x.MenuId, x => x.MenuType == 1);
                //被分配角色的权限
                List<Sys_RoleAuth> roleAuths = _RoleAuthRepository.QueryData(x => x.RoleId == roleId && menuIds.Contains(x.MenuId));
                List<Sys_RoleAuth> updateAuths = new List<Sys_RoleAuth>();
                foreach (UserPermissionDTO x in userPermissions)
                {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/System/Sys_RoleController.cs
@@ -74,5 +74,11 @@
        {
            return Json(Service.SavePermission(userPermissions, roleId));
        }
        [HttpPost, Route("SavePermissionPDA")]
        public IActionResult SavePermissionPDA([FromBody] List<UserPermissionDTO> userPermissions, int roleId)
        {
            return Json(Service.SavePermissionPDA(userPermissions, roleId));
        }
    }
}