/**
  * {@inheritdoc}
  */
 public function apply(FilterDatasourceAdapterInterface $ds, $data)
 {
     $channelCode = $this->parseData($data);
     if (!$channelCode) {
         $channelCode = $this->userContext->getUserChannelCode();
     }
     $this->catalogContext->setScopeCode($channelCode);
     return true;
 }
 function let(SecurityContextInterface $securityContext, AddLocaleListener $listener, CatalogContext $catalogContext, UserContext $userContext, GetResponseEvent $event)
 {
     $securityContext->getToken()->willReturn(true);
     $event->getRequestType()->willReturn(HttpKernel::MASTER_REQUEST);
     $userContext->getCurrentLocaleCode()->willReturn('de_DE');
     $userContext->getUserChannelCode()->willReturn('schmetterling');
     $this->beConstructedWith($securityContext, $listener, $catalogContext, $userContext);
 }
 /**
  * Get scope from datagrid's filters, fallback on request parameters to deal with the mass edit case
  *
  * @return string
  */
 protected function getScope()
 {
     $filterValues = $this->requestParams->get('_filter');
     if (empty($filterValues)) {
         $filterValues = $this->request->get('filters');
     }
     if (isset($filterValues['scope']['value']) && $filterValues['scope']['value'] !== null) {
         return $filterValues['scope']['value'];
     } else {
         return $this->userContext->getUserChannelCode();
     }
 }
 /**
  * Define locale and scope in CatalogContext
  */
 protected function configureCatalogContext()
 {
     $this->catalogContext->setLocaleCode($this->userContext->getCurrentLocaleCode());
     $this->catalogContext->setScopeCode($this->userContext->getUserChannelCode());
 }