Skip to content
Snippets Groups Projects

Resolve #3500168 "Permission to bypass"

2 files
+ 82
1
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 79
0
<?php
namespace Drupal\fapi_validation;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\fapi_validation\FapiValidationFiltersInterface;
use Drupal\fapi_validation\FapiValidationValidatorsInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Provides dynamic permissions for fapi validation module.
*/
class FapiValidationPermissions implements ContainerInjectionInterface {
use StringTranslationTrait;
/**
* Returns the plugin.manager.fapi_validation_validators service.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $validationManager;
/**
* Returns the plugin.manager.fapi_validation_filters service.
*
* @var \Drupal\fapi_validation\FapiValidationFiltersManager
*/
protected $filterManager;
/**
* Constructs a new FapiValidationPermissions instance.
*
* @param \Drupal\fapi_validation\FapiValidationValidatorsManager $validation_manager
* A plugin manager for Fapi Validation Validators Plugin.
* @param \Drupal\fapi_validation\FapiValidationFiltersManager $filter_manager
* A plugin manager for Fapi Validation Filters Plugin.
*/
public function __construct(FapiValidationValidatorsManager $validation_manager, FapiValidationFiltersManager $filter_manager) {
$this->validationManager = $validation_manager;
$this->filterManager = $filter_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('plugin.manager.fapi_validation_validators'),
$container->get('plugin.manager.fapi_validation_filters'),
);
}
/**
* Returns an array of fapi validation permissions.
*
* @return array
* An array of permissions for all plugins.
*/
public function permissions() {
$permissions = [];
foreach ($this->validationManager->getDefinitions() as $validation) {
$permissions["bypass {$validation['id']} fapi validation"] = [
'title' => $this->t('Allow users to bypass @plugin validation', ['@plugin' => $validation['id']]),
];
}
foreach ($this->filterManager->getDefinitions() as $validation) {
$permissions["bypass {$validation['id']} fapi validation"] = [
'title' => $this->t('Allow users to bypass @plugin validation', ['@plugin' => $validation['id']]),
];
}
return $permissions;
}
}
Loading