Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 15 |
| RestPermissions | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
42 | |
0.00% |
0 / 15 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| permissions | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 10 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\rest\RestPermissions. | |
| */ | |
| namespace Drupal\rest; | |
| use Drupal\Core\Config\ConfigFactoryInterface; | |
| use Drupal\Core\DependencyInjection\ContainerInjectionInterface; | |
| use Drupal\rest\Plugin\Type\ResourcePluginManager; | |
| use Symfony\Component\DependencyInjection\ContainerInterface; | |
| /** | |
| * Provides rest module permissions. | |
| */ | |
| class RestPermissions implements ContainerInjectionInterface { | |
| /** | |
| * The rest resource plugin manager. | |
| * | |
| * @var \Drupal\rest\Plugin\Type\ResourcePluginManager | |
| */ | |
| protected $restPluginManager; | |
| /** | |
| * The config factory. | |
| * | |
| * @var \Drupal\Core\Config\ConfigFactoryInterface | |
| */ | |
| protected $configFactory; | |
| /** | |
| * Constructs a new RestPermissions instance. | |
| * | |
| * @param \Drupal\rest\Plugin\Type\ResourcePluginManager $rest_plugin_manager | |
| * The rest resource plugin manager. | |
| * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory | |
| * The config factory. | |
| */ | |
| public function __construct(ResourcePluginManager $rest_plugin_manager, ConfigFactoryInterface $config_factory) { | |
| $this->restPluginManager = $rest_plugin_manager; | |
| $this->configFactory = $config_factory; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function create(ContainerInterface $container) { | |
| return new static($container->get('plugin.manager.rest'), $container->get('config.factory')); | |
| } | |
| /** | |
| * Returns an array of REST permissions. | |
| * | |
| * @return array | |
| */ | |
| public function permissions() { | |
| $permissions = []; | |
| $resources = $this->configFactory->get('rest.settings')->get('resources'); | |
| if ($resources && $enabled = array_intersect_key($this->restPluginManager->getDefinitions(), $resources)) { | |
| foreach ($enabled as $key => $resource) { | |
| $plugin = $this->restPluginManager->getInstance(['id' => $key]); | |
| $permissions = array_merge($permissions, $plugin->permissions()); | |
| } | |
| } | |
| return $permissions; | |
| } | |
| } |