예제 #1
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);
        }
예제 #2
0
        /// <summary>
        ///     根据用户id获取具有权限的菜单
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public async Task <IEnumerable <TreeEntity> > GetSystemPermissionMenuByUserId(Guid userId)
        {
            IList <TreeEntity> treeEntities = new List <TreeEntity>();
            string             cacheKey     = USER_MENU_CACHE_KEY + userId;

            treeEntities = this._cache.Get <List <TreeEntity> >(cacheKey);
            if (treeEntities == null)
            {
                var userInfo = await _userRepository.GetById(userId);

                //判断当前用户是否是超级管理员:若是超级管理员则显示所有菜单
                if (userInfo != null)
                {
                    //如果是超级管理员
                    if (userInfo.IsAdmin)
                    {
                        treeEntities = (await _menuRepository.GetAllMenu(true, true)).ToList();
                        return(treeEntities);
                    }
                    treeEntities = (await _systemPermissionRepository.GetSystemPermissionMenuByUserId(userInfo.UserId)).ToList();
                }
            }
            return(treeEntities);
        }