diff --git a/catalyst/api-bundle/Access/Generator.php b/catalyst/api-bundle/Access/Generator.php deleted file mode 100644 index 7dbb0938..00000000 --- a/catalyst/api-bundle/Access/Generator.php +++ /dev/null @@ -1,111 +0,0 @@ -router = $router; - $this->cache_dir = $cache_dir; - $this->config_dir = $config_dir; - } - - public function getACL() - { - $key = 'api_access_keys'; - - // cache config - $cache_file = $this->cache_dir . '/' . $key . '.serial'; - $cache = new ConfigCache($cache_file, true); - - // check if cache is fresh - if (!$cache->isFresh()) - { - $files = []; - $resources = []; - - try - { - // get location of api_acl.yaml - $path = $this->config_dir . '/api_acl.yaml'; - - $files[] = $path; - $resources[] = new FileResource($path); - - // process api acl config file - $data = $this->parseACL($path, $key); - } - catch (\InvalidArgumentException $e) - { - error_log($e->getMessage()); - error_log($key . ' key not found in api_acl.yaml file.'); - return $data; - } - - $acl_serial = serialize($data); - $cache->write($acl_serial, $resources); - } - else - { - $acl_serial = file_get_contents($cache_file); - $data = unserialize($acl_serial); - } - - return $data; - } - - protected function parseACL($path, $key) - { - - $parser = new YamlParser(); - $config = $parser->parse(file_get_contents($path)); - - // check if we have access keys - if (!isset($config[$key])) - { - error_log('No ' . $key . ' found for ' . $path); - return; - } - - $acl_hierarchy = []; - $acl_index = []; - - // go through each one - foreach ($config[$key] as $acl_data) - { - // build hierarchy - $acl_hierarchy[$acl_data['id']] = [ - 'label' => $acl_data['label'], - 'acls' => [] - ]; - - foreach ($acl_data['acls'] as $acl) - { - $id = $acl['id']; - $label = $acl['label']; - - // set hierarchy and index - $acl_hierarchy[$acl_data['id']]['acls'][$id] = $label; - $acl_index[$id] = $label; - } - } - - return [ - 'hierarchy' => $acl_hierarchy, - 'index' => $acl_index - ]; - } -} diff --git a/catalyst/auth-bundle/Access/Generator.php b/catalyst/auth-bundle/Access/Generator.php index f52c75b1..7681d800 100644 --- a/catalyst/auth-bundle/Access/Generator.php +++ b/catalyst/auth-bundle/Access/Generator.php @@ -15,17 +15,22 @@ class Generator protected $router; protected $cache_dir; protected $config_dir; + protected $acl_file; + protected $acl_key; - public function __construct(RouterInterface $router, string $cache_dir, string $config_dir) + public function __construct(RouterInterface $router, string $cache_dir, string $config_dir, + string $acl_file, string $acl_key) { $this->router = $router; $this->cache_dir = $cache_dir; $this->config_dir = $config_dir; + $this->acl_file = $acl_file; + $this->acl_key = $acl_key; } public function getACL() { - $key = 'api_access_keys'; + $key = $this->acl_key; // cache config $cache_file = $this->cache_dir . '/' . $key . '.serial'; @@ -40,7 +45,8 @@ class Generator try { // get location of api_acl.yaml - $path = $this->config_dir . '/api_acl.yaml'; + // $path = $this->config_dir . '/api_acl.yaml'; + $path = $this->config_dir . '/' . $this->acl_file; $files[] = $path; $resources[] = new FileResource($path); @@ -51,7 +57,7 @@ class Generator catch (\InvalidArgumentException $e) { error_log($e->getMessage()); - error_log($key . ' key not found in api_acl.yaml file.'); + error_log($key . ' key not found in ' . $this->acl_file . 'file.'); return $data; } diff --git a/config/services.yaml b/config/services.yaml index aae29801..3f2e25ac 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -6,6 +6,10 @@ parameters: longitude: 121.0223 image_upload_directory: '%kernel.project_dir%/public/uploads' job_order_refresh_interval: 300000 + api_acl_file: 'api_acl.yaml' + api_access_key: 'api_access_keys' + site_acl_file: 'acl.yaml' + site_access_key: 'access_keys' services: # default configuration for services in *this* file @@ -104,4 +108,6 @@ services: $router: "@router.default" $cache_dir: "%kernel.cache_dir%" $config_dir: "%kernel.root_dir%/../config" + $acl_file: "%api_acl_file%" + $acl_key: "%api_access_key%"