Skip to content
Snippets Groups Projects
Commit 25c0ff37 authored by Viktor Holovachek's avatar Viktor Holovachek
Browse files

Resolve #3500168 "Permission to bypass"

parent 607c4536
No related branches found
No related tags found
1 merge request!35Resolve #3500168 "Permission to bypass"
Pipeline #405395 passed with warnings
manage fapi validation settings:
title: 'Manage fapi validation settings'
description: 'Allows a user to manage fapi validation settings.'
bypass fapi validations:
title: 'Manage bypass fapi validations'
description: 'Allows a user to bypass fapi validation settings.'
permission_callbacks:
- Drupal\fapi_validation\FapiValidationPermissions::permissions
<?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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment