/// <summary>
        ///     根据状态为True的菜单信息
        /// </summary>
        /// <returns></returns>
        public async Task <IEnumerable <TreeEntity> > GetAllMenu()
        {
            var MenuAllList = await _systemMenuRepository.GetAllMenu();

            MenuAllList = MenuAllList.Select(m => {
                m.url      = "";
                m.pId      = (Guid.Parse(m.pId.ToString()).IsEmptyGuid()) ? null : m.pId;
                m.isParent = MenuAllList.Select(m1 => m1.pId).Contains(m.id);
                return(m);
            }).ToList();


            return(MenuAllList);
        }
        /// <summary>
        ///     根据用户id获取具有权限的菜单
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public async Task <IEnumerable <TreeEntity> > GetSystemPermissionMenuByUserId(Guid userId)
        {
            string             cacheKey     = USER_MENU_CACHE_KEY + userId;
            IList <TreeEntity> treeEntities = this._cache.Get <List <TreeEntity> >(cacheKey);

            if (treeEntities == null)
            {
                var userInfo = await _userRepository.GetAsync(userId, false);

                //判断当前用户是否是超级管理员:若是超级管理员则显示所有菜单
                if (userInfo != null)
                {
                    //如果是超级管理员
                    if (userInfo.IsAdmin)
                    {
                        treeEntities = (await _menuRepository.GetAllMenu(true, true)).ToList();
                        return(treeEntities);
                    }
                    treeEntities = (await _systemPermissionDapperRepository.GetSystemPermissionMenuByUserId(userInfo.Id.ToString())).ToList();
                }
                this._cache.Set(cacheKey, treeEntities);
            }
            return(treeEntities);
        }
예제 #3
0
        /// <summary>
        ///     根据用户Id获取用户具有的菜单权限
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public async Task <IEnumerable <TreeEntity> > GetSystemPermissionMenuByUserId(Guid userId)
        {
            IList <TreeEntity> treeEntities = new List <TreeEntity>();
            //判断该用户是否为超级管理员:若是超级管理员则显示所有菜单
            var userInfo = await _userInfoRepository.GetByIdAsync(userId);

            if (userInfo != null)
            {
                //如果是超级管理员
                if (userInfo.IsAdmin)
                {
                    treeEntities = (await _menuRepository.GetAllMenu(true, true)).ToList();
                    return(treeEntities);
                }
                treeEntities = (await _permissionRepository.GetSystemPermissionMenuByUserId(userId)).ToList();
            }
            return(treeEntities);
        }
예제 #4
0
 /// <summary>
 ///     根据状态为True的菜单信息
 /// </summary>
 /// <returns></returns>
 public async Task <IEnumerable <TreeEntity> > GetAllMenu()
 {
     return(await _menuRepository.GetAllMenu());
 }