/** * {@inheritdoc} */ public function get(RequestConfiguration $requestConfiguration, RepositoryInterface $repository) { if ($requestConfiguration->hasPermission() && $this->requireOwnerCheck($vars = $requestConfiguration->getVars())) { $owner = $this->currentIdentityProvider->getIdentity(); $ownerField = is_bool($vars['acl_owner']) ? ResourceOwnerFilter::FIELD : $vars['acl_owner']; // using in grid param $requestConfiguration->getRequest()->query->set(ResourceOwnerFilter::TYPE, $owner); $criteria = $requestConfiguration->getCriteria(); $criteria[$ownerField] = $owner; $requestConfiguration->getParameters()->set('criteria', $criteria); } return $this->decoratedResolver->get($requestConfiguration, $repository); }
/** * @param Request $request * * @return \Symfony\Component\HttpFoundation\Response */ public function indexAction(Request $request) { $configuration = $this->requestConfigurationFactory->create($this->metadata, $request); $this->isGrantedOr403($configuration, ResourceActions::INDEX); $resources = $this->resourcesCollectionProvider->get($configuration, $this->repository); $view = View::create($resources); if ($configuration->isHtmlRequest()) { $view->setTemplate($configuration->getTemplate(ResourceActions::INDEX . '.html'))->setTemplateVar($this->metadata->getPluralName())->setData(['configuration' => $configuration, 'metadata' => $this->metadata, 'resources' => $resources, $this->metadata->getPluralName() => $resources]); } return $this->viewHandler->handle($configuration, $view); }
function it_returns_a_response_for_html_view_of_paginated_resources(MetadataInterface $metadata, RequestConfigurationFactoryInterface $requestConfigurationFactory, RequestConfiguration $configuration, AuthorizationCheckerInterface $authorizationChecker, RepositoryInterface $repository, ResourcesCollectionProviderInterface $resourcesCollectionProvider, ResourceInterface $resource1, ResourceInterface $resource2, ViewHandlerInterface $viewHandler, Request $request, Response $response) { $metadata->getApplicationName()->willReturn('sylius'); $metadata->getName()->willReturn('product'); $metadata->getPluralName()->willReturn('products'); $requestConfigurationFactory->create($metadata, $request)->willReturn($configuration); $configuration->hasPermission()->willReturn(true); $configuration->getPermission(ResourceActions::INDEX)->willReturn('sylius.product.index'); $authorizationChecker->isGranted($configuration, 'sylius.product.index')->willReturn(true); $configuration->isHtmlRequest()->willReturn(true); $configuration->getTemplate(ResourceActions::INDEX)->willReturn('SyliusShopBundle:Product:index.html.twig'); $resourcesCollectionProvider->get($configuration, $repository)->willReturn(array($resource1, $resource2)); $expectedView = View::create()->setData(array('metadata' => $metadata, 'resources' => array($resource1, $resource2), 'products' => array($resource1, $resource2)))->setTemplateVar('products')->setTemplate('SyliusShopBundle:Product:index.html.twig'); $viewHandler->handle($configuration, Argument::that($this->getViewComparingCallback($expectedView)))->willReturn($response); $this->indexAction($request)->shouldReturn($response); }