예제 #1
0
 public function dump(SecurityPolicyRules $rules)
 {
     $result = "<?php\n";
     $result .= "return new Intaro\\TwigSandboxBundle\\SecurityPolicy\\SecurityPolicyRules(\n";
     $result .= "    array(\n";
     foreach ($rules->getMethods() as $entity => $methods) {
         $result .= "        '{$entity}' => array(\n";
         if (sizeof($methods)) {
             $result .= "            '" . implode("', '", $methods) . "'\n";
         }
         $result .= "        ),\n";
     }
     $result .= "    ),\n";
     $result .= "    array(\n";
     foreach ($rules->getProperties() as $entity => $properties) {
         $result .= "        '{$entity}' => array(\n";
         if (sizeof($properties)) {
             $result .= "            '" . implode("', '", $properties) . "'\n";
         }
         $result .= "        ),\n";
     }
     $result .= "    )\n";
     $result .= ");\n";
     return $result;
 }
 public function merge(SecurityPolicyRules $rules)
 {
     $this->resources = array_merge($this->resources, $rules->getResources());
     foreach ($rules->getMethods() as $class => $methods) {
         foreach ($methods as $method) {
             $this->addMethod($class, $method);
         }
     }
     foreach ($rules->getProperties() as $class => $properties) {
         foreach ($properties as $property) {
             $this->addProperty($class, $property);
         }
     }
 }