Ejemplo n.º 1
0
        /// <summary>
        /// 获取权限内的所有的菜单列表
        /// </summary>
        /// <param name="sysUser"></param>
        /// <returns></returns>
        private List <Category> GerMyCategoryList(SysUser sysUser)
        {
            var list = this._categoryService.GetAll();

            if (list == null)
            {
                return(null);
            }
            if (sysUser.IsAdmin)
            {
                return(list);
            }
            //获取权限数据
            var sysUserRoles = _sysUserRoleService.GetAll();//获取所有的用户角色信息

            if (sysUserRoles == null || !sysUserRoles.Any())
            {
                return(null);
            }
            //获取当前用户所有的角色信息
            var roleIds = sysUserRoles.Where(o => o.UserId == sysUser.Id).Select(x => x.RoleId).Distinct().ToList();

            var sysPermissions = _sysPermissionService.GetAll();//获取所有的用户角色权限信息

            if (sysPermissions == null || !sysPermissions.Any())
            {
                return(null);
            }

            var categoryIds = sysPermissions.Where(o => roleIds.Contains(o.RoleId)).Select(o => o.CategoryId).Distinct().ToList();

            if (!categoryIds.Any())
            {
                return(null);
            }
            list = list.Where(o => categoryIds.Contains(o.Id)).ToList();
            return(list);
        }
        public List <Category> GetMyCategories()
        {
            var cateList = _categoryService.GetAll();
            var user     = GetCurrentUser();

            if (user == null)
            {
                return(null);
            }
            if (user.IsAdmin)
            {
                return(cateList);
            }
            var roleList = _sysUserRoleService.GetAll();

            if (roleList == null || roleList?.Count <= 0)
            {
                return(null);
            }
            var roleIds = roleList.Where(o => o.UserId == user.UserGuid).Select(x => x.RoleId).Distinct().ToList();

            var permissionList = _sysPermissionService.GetAll();

            if (permissionList == null || permissionList.Count <= 0)
            {
                return(null);
            }
            var list = permissionList.Where(o => roleIds.Contains(o.RoleId)).Select(x => x.CategoryId).Distinct().ToList();

            if (list.Count <= 0)
            {
                return(null);
            }
            var result = cateList.Where(o => list.Contains(o.Id)).Distinct().ToList();

            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 私有方法,获取当前用户的方法数据
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        private List <Entities.Category> getMyCategories(Entities.SysUser user)
        {
            var list = _categoryService.GetAll();

            if (user == null)
            {
                return(null);
            }
            if (user.IsAdmin)
            {
                return(list);
            }

            //获取权限数据
            var userRoles = _sysUserRoleService.GetAll();

            if (userRoles == null || !userRoles.Any())
            {
                return(null);
            }
            var roleIds        = userRoles.Where(o => o.UserId == user.Id).Select(x => x.RoleId).Distinct().ToList();
            var permissionList = _sysPermissionServices.GetAll();

            if (permissionList == null || !permissionList.Any())
            {
                return(null);
            }

            var categoryIds = permissionList.Where(o => roleIds.Contains(o.RoleId)).Select(x => x.CategoryId).Distinct().ToList();

            if (!categoryIds.Any())
            {
                return(null);
            }
            list = list.Where(o => categoryIds.Contains(o.Id)).ToList();
            return(list);
        }