/** * Loads ACL annotations from config files * * @param AclAnnotationStorage $storage */ public function load(AclAnnotationStorage $storage) { $configLoader = OroSecurityExtension::getAclConfigLoader(); $resources = $configLoader->load(); foreach ($resources as $resource) { foreach ($resource->data as $id => $data) { $data['id'] = $id; $storage->add(new AclAnnotation($data)); if (isset($data['bindings'])) { foreach ($data['bindings'] as $binding) { $storage->addBinding($id, isset($binding['class']) ? $binding['class'] : null, isset($binding['method']) ? $binding['method'] : null); } } } } }
/** * Loads ACL annotations from YAML config files * * @param AclAnnotationStorage $storage */ public function load(AclAnnotationStorage $storage) { foreach ($this->bundleDirectories as $bundleDir) { $file = $bundleDir . '/Resources/config/acl.yml'; if (is_file($file)) { $config = Yaml::parse(realpath($file)); foreach ($config as $id => $data) { $data['id'] = $id; $storage->add(new AclAnnotation($data)); if (isset($data['bindings'])) { foreach ($data['bindings'] as $binding) { $storage->addBinding($id, isset($binding['class']) ? $binding['class'] : null, isset($binding['method']) ? $binding['method'] : null); } } } } } }