public ActionResult <GetPagesOfUserCanAccessPostOutput> GetPagesOfUserCanAccessPost([FromBody] GetPagesOfUserCanAccessPostInput input)
        {
            IEnumerable <string> permissionNames = _claimManager.GetPermissionsForClaims(User.Claims);
            var permissions = _permissionManager.GetPermissionsForCache().Where(e => permissionNames.Contains(e.Name));

            IEnumerable <ContentPage> pages = null;

            // 如果用户具有 Page域 的管理权限,则用户具有所有页面的管理权限
            if (_checkPermissionService.IsAllowAccess(ApiScopeProvider.Page, false, permissions))
            {
                pages = _pageManager.PageRepository.GetAll().OfType <ContentPage>().ToList();
            }
            else
            {
                if (input.QueryOrManage)
                {
                    pages = _pageManager.GetPagesForManagePermission(permissions);
                }
                else
                {
                    pages = _pageManager.GetPagesForQueryPermission(permissions);
                }
            }

            List <PageDto> pageDtos = new List <PageDto>();

            foreach (var page in pages)
            {
                var pageDto = new PageDto();

                pageDto.Id          = page.Id;
                pageDto.Name        = page.Name;
                pageDto.DisplayName = page.DisplayName;
                pageDto.Description = page.Description;

                pageDto.SetContentPage();
                pageDtos.Add(pageDto);
            }

            return(new GetPagesOfUserCanAccessPostOutput()
            {
                Pages = pageDtos
            });
        }
        public ActionResult <GetPagesOfUserCanAccessPostOutput> GetPagesOfUserCanAccessPost([FromBody] GetPagesOfUserCanAccessPostInput input)
        {
            IEnumerable <string> permissionNames = _claimManager.GetPermissionsForClaims(User.Claims);
            var permissions = _permissionManager.GetPermissionsForCache().Where(e => permissionNames.Contains(e.Name));

            IEnumerable <Page> pages = null;

            if (input.QueryOrManage)
            {
                if (_checkPermissionService.IsAllowAccess(ApiScopeProvider.Page, false, permissions))
                {
                    pages = _pageManager.GetPagesForCache().Where(e => e.Discriminator == Page.ContentPageDiscriminatorName).ToList();
                }
                else
                {
                    pages = _pageManager.GetPagesForManagePermission(permissions);
                }
            }
            else
            {
                if (_checkPermissionService.IsAllowAccess(ApiScopeProvider.Page, true, permissions) ||
                    _checkPermissionService.IsAllowAccess(ApiScopeProvider.Page, false, permissions))
                {
                    pages = _pageManager.GetPagesForCache().Where(e => e.Discriminator == Page.ContentPageDiscriminatorName).ToList();
                }
                else
                {
                    pages = _pageManager.GetPagesForQueryPermission(permissions);
                }
            }

            List <PageDto> pageDtos = new List <PageDto>();

            foreach (var page in pages)
            {
                pageDtos.Add(_objectMapper.Map <PageDto>(page));
            }

            return(new GetPagesOfUserCanAccessPostOutput()
            {
                Pages = pageDtos
            });
        }