/**
  * Assert that the group of the currently logged in customer only has or not some accesses to some resources.
  * @param array $expectedRessourceAccesses A map of [expected resource => [expected accesses...], ...].
  * @param boolean $expectedGrant Whether the accesses are expected to be granted or not.
  *
  * @todo Check every possible permutation of ressource(s) and access(es) in the expected set ?
  */
 protected function assertGroupAccesses(array $expectedRessourceAccesses, $expectedGrant)
 {
     foreach ($expectedRessourceAccesses as $ressourceCode => $accessesCodes) {
         // assert all accesses at once
         $this->assertEquals($expectedGrant, $this->aclTool->checkAcl($ressourceCode, $accessesCodes));
         // as well as individually
         foreach ($accessesCodes as $accessCode) {
             $this->assertEquals($expectedGrant, $this->aclTool->checkAcl($ressourceCode, $accessCode));
         }
     }
 }
 /**
  * Handle acl smarty block structure
  *
  * @param array                     $params   Parameters
  * @param string                    $content  Block content
  * @param \Smarty_Internal_Template $template Smarty template
  * @param boolean                   $repeat   Block repeat
  *
  * @throws \TheliaSmarty\Template\Exception\SmartyPluginException
  *
  * @return null|string
  */
 public function checkAclBlock(array $params, $content, $template, &$repeat)
 {
     if ($content === null) {
         list($codes, $accesses, $accessOr, $entityId, $name) = $this->checkParameters($params);
         if ($name !== null) {
             if (array_key_exists($name, $this->rel)) {
                 throw new SmartyPluginException('The named blocks "' . $name . '" was already declared.');
             }
             $this->rel[$name] = true;
         }
         if (!$this->customerGroupAclTool->checkAcl(explode(',', $codes), explode(',', $accesses), $accessOr, $entityId)) {
             if ($name !== null) {
                 $this->rel[$name] = false;
             }
             $repeat = false;
         }
     }
     return $content;
 }