Issue #2109035 by tim.plunkett, damiankloip, dawehner, chx: Make access checkers (much) easier to find.
parent
a06d7830eb
commit
d9f2ba2c84
|
@ -447,29 +447,29 @@ services:
|
|||
access_check.default:
|
||||
class: Drupal\Core\Access\DefaultAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access }
|
||||
access_check.entity:
|
||||
class: Drupal\Core\Entity\EntityAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _entity_access }
|
||||
access_check.entity_create:
|
||||
class: Drupal\Core\Entity\EntityCreateAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _entity_create_access }
|
||||
access_check.theme:
|
||||
class: Drupal\Core\Theme\ThemeAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_theme }
|
||||
access_check.custom:
|
||||
class: Drupal\Core\Access\CustomAccessCheck
|
||||
arguments: ['@controller_resolver']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _custom_access }
|
||||
access_check.csrf:
|
||||
class: Drupal\Core\Access\CsrfAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _csrf_token }
|
||||
arguments: ['@csrf_token']
|
||||
maintenance_mode_subscriber:
|
||||
class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
|
||||
|
|
|
@ -8,7 +8,10 @@
|
|||
namespace Drupal\Core\Access;
|
||||
|
||||
/**
|
||||
* An exception thrown for invalid access callback return values.
|
||||
* An exception thrown for access errors.
|
||||
*
|
||||
* Examples could be invalid access callback return values, or invalid access
|
||||
* objects being used.
|
||||
*/
|
||||
class AccessException extends \RuntimeException {
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
namespace Drupal\Core\Access;
|
||||
|
||||
use Drupal\Core\ParamConverter\ParamConverterManager;
|
||||
use Drupal\Core\Routing\Access\AccessInterface as RoutingAccessInterface;
|
||||
use Drupal\Core\Routing\RequestHelper;
|
||||
use Drupal\Core\Routing\RouteProviderInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
|
@ -16,7 +17,6 @@ use Symfony\Component\Routing\RouteCollection;
|
|||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\DependencyInjection\ContainerAware;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
||||
use Symfony\Cmf\Component\Routing\RouteObjectInterface;
|
||||
|
@ -118,9 +118,15 @@ class AccessManager extends ContainerAware {
|
|||
*
|
||||
* @param string $service_id
|
||||
* The ID of the service in the Container that provides a check.
|
||||
* @param array $applies_checks
|
||||
* (optional) An array of route requirement keys the checker service applies
|
||||
* to.
|
||||
*/
|
||||
public function addCheckService($service_id) {
|
||||
public function addCheckService($service_id, array $applies_checks = array()) {
|
||||
$this->checkIds[] = $service_id;
|
||||
foreach ($applies_checks as $applies_check) {
|
||||
$this->staticRequirementMap[$applies_check][] = $service_id;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -130,7 +136,7 @@ class AccessManager extends ContainerAware {
|
|||
* A collection of routes to apply checks to.
|
||||
*/
|
||||
public function setChecks(RouteCollection $routes) {
|
||||
$this->loadAccessRequirementMap();
|
||||
$this->loadDynamicRequirementMap();
|
||||
foreach ($routes as $route) {
|
||||
if ($checks = $this->applies($route)) {
|
||||
$route->setOption('_access_checks', $checks);
|
||||
|
@ -329,19 +335,24 @@ class AccessManager extends ContainerAware {
|
|||
throw new \InvalidArgumentException(sprintf('No check has been registered for %s', $service_id));
|
||||
}
|
||||
|
||||
$this->checks[$service_id] = $this->container->get($service_id);
|
||||
$check = $this->container->get($service_id);
|
||||
|
||||
if (!($check instanceof RoutingAccessInterface)) {
|
||||
throw new AccessException('All access checks must implement AccessInterface.');
|
||||
}
|
||||
|
||||
$this->checks[$service_id] = $check;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compiles a mapping of requirement keys to access checker service IDs.
|
||||
*/
|
||||
public function loadAccessRequirementMap() {
|
||||
if (isset($this->staticRequirementMap, $this->dynamicRequirementMap)) {
|
||||
public function loadDynamicRequirementMap() {
|
||||
if (isset($this->dynamicRequirementMap)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set them here, so we can use the isset() check above.
|
||||
$this->staticRequirementMap = array();
|
||||
$this->dynamicRequirementMap = array();
|
||||
|
||||
foreach ($this->checkIds as $service_id) {
|
||||
|
@ -349,14 +360,8 @@ class AccessManager extends ContainerAware {
|
|||
$this->loadCheck($service_id);
|
||||
}
|
||||
|
||||
// Empty arrays will not register anything.
|
||||
if (is_subclass_of($this->checks[$service_id], 'Drupal\Core\Access\StaticAccessCheckInterface')) {
|
||||
foreach ((array) $this->checks[$service_id]->appliesTo() as $key) {
|
||||
$this->staticRequirementMap[$key][] = $service_id;
|
||||
}
|
||||
}
|
||||
// Add the service ID to a the regular that will be iterated over.
|
||||
else {
|
||||
// Add the service ID to an array that will be iterated over.
|
||||
if ($this->checks[$service_id] instanceof AccessCheckInterface) {
|
||||
$this->dynamicRequirementMap[] = $service_id;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Drupal\Core\Access;
|
||||
|
||||
use Drupal\Core\Access\CsrfTokenGenerator;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface as RoutingAccessInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
|
@ -19,7 +19,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
* a token generated by \Drupal::csrfToken()->get() using the same value as the
|
||||
* "_csrf_token" parameter in the route.
|
||||
*/
|
||||
class CsrfAccessCheck implements StaticAccessCheckInterface {
|
||||
class CsrfAccessCheck implements RoutingAccessInterface {
|
||||
|
||||
/**
|
||||
* The CSRF token generator.
|
||||
|
@ -38,13 +38,6 @@ class CsrfAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->csrfToken = $csrf_token;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_csrf_token');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
namespace Drupal\Core\Access;
|
||||
|
||||
use Drupal\Core\Controller\ControllerResolverInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface as RoutingAccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -22,7 +23,7 @@ use Symfony\Component\Routing\Route;
|
|||
* cannot reuse any stored property of your actual controller instance used
|
||||
* to generate the output.
|
||||
*/
|
||||
class CustomAccessCheck implements StaticAccessCheckInterface {
|
||||
class CustomAccessCheck implements RoutingAccessInterface {
|
||||
|
||||
/**
|
||||
* The controller resolver.
|
||||
|
@ -41,13 +42,6 @@ class CustomAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->controllerResolver = $controller_resolver;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_custom_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -8,20 +8,14 @@
|
|||
namespace Drupal\Core\Access;
|
||||
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface as RoutingAccessInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* Allows access to routes to be controlled by an '_access' boolean parameter.
|
||||
*/
|
||||
class DefaultAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access');
|
||||
}
|
||||
class DefaultAccessCheck implements RoutingAccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\Core\Access\StaticAccessCheckInterface.
|
||||
*/
|
||||
|
||||
namespace Drupal\Core\Access;
|
||||
|
||||
use Drupal\Core\Routing\Access\AccessInterface as RoutingAccessInterface;
|
||||
|
||||
/**
|
||||
* An access check service determines access rules for particular routes.
|
||||
*
|
||||
* This interface is specifically for routes that know exactly which requirement
|
||||
* keys they should react to for a route.
|
||||
*/
|
||||
interface StaticAccessCheckInterface extends RoutingAccessInterface {
|
||||
|
||||
/**
|
||||
* Declares the route requirement keys this access checker applies to.
|
||||
*
|
||||
* This should be used when the requirement matching for a route is static,
|
||||
* and does not require any further information. For example, '_access' will
|
||||
* provide TRUE, or FALSE. We do not need any more information other than the
|
||||
* route provides this requirement key.
|
||||
*
|
||||
* @return array
|
||||
* An array of route requirement keys this access checker applies to. An
|
||||
* empty array will check all routes using the apply method.
|
||||
*/
|
||||
public function appliesTo();
|
||||
|
||||
}
|
|
@ -26,7 +26,13 @@ class RegisterAccessChecksPass implements CompilerPassInterface {
|
|||
}
|
||||
$access_manager = $container->getDefinition('access_manager');
|
||||
foreach ($container->findTaggedServiceIds('access_check') as $id => $attributes) {
|
||||
$access_manager->addMethodCall('addCheckService', array($id));
|
||||
$applies = array();
|
||||
foreach ($attributes as $attribute) {
|
||||
if (isset($attribute['applies_to'])) {
|
||||
$applies[] = $attribute['applies_to'];
|
||||
}
|
||||
}
|
||||
$access_manager->addMethodCall('addCheckService', array($id, $applies));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,23 +7,15 @@
|
|||
|
||||
namespace Drupal\Core\Entity;
|
||||
|
||||
use Drupal\Core\Entity\EntityInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
|
||||
/**
|
||||
* Provides a generic access checker for entities.
|
||||
*/
|
||||
class EntityAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_entity_access');
|
||||
}
|
||||
class EntityAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Implements \Drupal\Core\Access\AccessCheckInterface::access().
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\Core\Entity;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -15,7 +15,7 @@ use Symfony\Component\Routing\Route;
|
|||
/**
|
||||
* Defines an access checker for entity creation.
|
||||
*/
|
||||
class EntityCreateAccessCheck implements StaticAccessCheckInterface {
|
||||
class EntityCreateAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The entity manager.
|
||||
|
@ -41,13 +41,6 @@ class EntityCreateAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->entityManager = $entity_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array($this->requirementsKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\Core\Theme;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\Routing\Route;
|
|||
/**
|
||||
* Access check for a theme.
|
||||
*/
|
||||
class ThemeAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_theme');
|
||||
}
|
||||
class ThemeAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -8,3 +8,11 @@ services:
|
|||
plugin.manager.aggregator.processor:
|
||||
class: Drupal\aggregator\Plugin\AggregatorPluginManager
|
||||
arguments: [processor, '@container.namespaces', '@cache.cache', '@language_manager']
|
||||
access_check.aggregator.categories:
|
||||
class: Drupal\aggregator\Access\CategoriesAccessCheck
|
||||
arguments: ['@database']
|
||||
tags:
|
||||
- { name: access_check, applies_to: _access_aggregator_categories }
|
||||
aggregator.category.storage:
|
||||
class: Drupal\aggregator\CategoryStorageController
|
||||
arguments: ['@database']
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\aggregator\Access\CategoriesAccess.
|
||||
*/
|
||||
|
||||
namespace Drupal\aggregator\Access;
|
||||
|
||||
use Drupal\Core\Database\Connection;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
||||
/**
|
||||
* Provides an access check for aggregator categories routes.
|
||||
*/
|
||||
class CategoriesAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The database connection.
|
||||
*
|
||||
* @var \Drupal\Core\Database\Connection
|
||||
*/
|
||||
protected $database;
|
||||
|
||||
/**
|
||||
* Constructs a CategoriesAccessCheck object.
|
||||
*
|
||||
* @param \Drupal\Core\Database\Connection
|
||||
* The database connection.
|
||||
*/
|
||||
public function __construct(Connection $database) {
|
||||
$this->database = $database;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function access(Route $route, Request $request, AccountInterface $account) {
|
||||
return $account->hasPermission('access news feeds') && (bool) $this->database->queryRange('SELECT 1 FROM {aggregator_category}', 0, 1)->fetchField() ? static::ALLOW : static::DENY;
|
||||
}
|
||||
|
||||
}
|
|
@ -15,4 +15,4 @@ services:
|
|||
class: Drupal\book\Access\BookNodeIsRemovableAccessCheck
|
||||
arguments: ['@book.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_book_removable }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
namespace Drupal\book\Access;
|
||||
|
||||
use Drupal\book\BookManager;
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Determines whether the requested node can be removed from its book.
|
||||
*/
|
||||
class BookNodeIsRemovableAccessCheck implements StaticAccessCheckInterface {
|
||||
class BookNodeIsRemovableAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Book Manager Service.
|
||||
|
@ -35,13 +35,6 @@ class BookNodeIsRemovableAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->bookManager = $book_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_book_removable');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -9,13 +9,13 @@ services:
|
|||
class: Drupal\config_translation\Access\ConfigTranslationOverviewAccess
|
||||
arguments: ['@plugin.manager.config_translation.mapper']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _config_translation_overview_access }
|
||||
|
||||
config_translation.access.form:
|
||||
class: Drupal\config_translation\Access\ConfigTranslationFormAccess
|
||||
arguments: ['@plugin.manager.config_translation.mapper']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _config_translation_form_access }
|
||||
|
||||
plugin.manager.config_translation.mapper:
|
||||
class: Drupal\config_translation\ConfigMapperManager
|
||||
|
|
|
@ -16,13 +16,6 @@ use Symfony\Component\Routing\Route;
|
|||
*/
|
||||
class ConfigTranslationFormAccess extends ConfigTranslationOverviewAccess {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_config_translation_form_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
namespace Drupal\config_translation\Access;
|
||||
|
||||
use Drupal\config_translation\ConfigMapperManagerInterface;
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\Routing\Route;
|
|||
/**
|
||||
* Checks access for displaying the configuration translation overview.
|
||||
*/
|
||||
class ConfigTranslationOverviewAccess implements StaticAccessCheckInterface {
|
||||
class ConfigTranslationOverviewAccess implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The mapper plugin discovery service.
|
||||
|
@ -42,13 +42,6 @@ class ConfigTranslationOverviewAccess implements StaticAccessCheckInterface {
|
|||
$this->configMapperManager = $config_mapper_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_config_translation_overview_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -2,5 +2,5 @@ services:
|
|||
access_check.contact_personal:
|
||||
class: Drupal\contact\Access\ContactPageAccess
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_contact_personal_tab }
|
||||
arguments: ['@config.factory', '@user.data']
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Drupal\contact\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Config\ConfigFactory;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\user\UserDataInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -17,7 +17,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for contact_personal_page route.
|
||||
*/
|
||||
class ContactPageAccess implements StaticAccessCheckInterface {
|
||||
class ContactPageAccess implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The contact settings config object.
|
||||
|
@ -46,13 +46,6 @@ class ContactPageAccess implements StaticAccessCheckInterface {
|
|||
$this->userData = $user_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_contact_personal_tab');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -13,13 +13,13 @@ services:
|
|||
class: Drupal\content_translation\Access\ContentTranslationOverviewAccess
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_content_translation_overview }
|
||||
|
||||
content_translation.manage_access:
|
||||
class: Drupal\content_translation\Access\ContentTranslationManageAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_content_translation_manage }
|
||||
|
||||
content_translation.manager:
|
||||
class: Drupal\content_translation\ContentTranslationManager
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
namespace Drupal\content_translation\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Language\Language;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -17,7 +17,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for entity translation CRUD operation.
|
||||
*/
|
||||
class ContentTranslationManageAccessCheck implements StaticAccessCheckInterface {
|
||||
class ContentTranslationManageAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The entity type manager.
|
||||
|
@ -36,13 +36,6 @@ class ContentTranslationManageAccessCheck implements StaticAccessCheckInterface
|
|||
$this->entityManager = $manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_content_translation_manage');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Drupal\content_translation\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for entity translation overview.
|
||||
*/
|
||||
class ContentTranslationOverviewAccess implements StaticAccessCheckInterface {
|
||||
class ContentTranslationOverviewAccess implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The entity type manager.
|
||||
|
@ -35,13 +35,6 @@ class ContentTranslationOverviewAccess implements StaticAccessCheckInterface {
|
|||
$this->entityManager = $manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_content_translation_overview');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -6,12 +6,12 @@ services:
|
|||
class: Drupal\edit\Access\EditEntityFieldAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_edit_entity_field }
|
||||
access_check.edit.entity:
|
||||
class: Drupal\edit\Access\EditEntityAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_edit_entity }
|
||||
edit.editor.selector:
|
||||
class: Drupal\edit\EditorSelector
|
||||
arguments: ['@plugin.manager.edit.editor', '@plugin.manager.field.formatter']
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Drupal\edit\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -18,7 +18,7 @@ use Drupal\Core\Entity\EntityInterface;
|
|||
/**
|
||||
* Access check for editing entities.
|
||||
*/
|
||||
class EditEntityAccessCheck implements StaticAccessCheckInterface {
|
||||
class EditEntityAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The entity manager.
|
||||
|
@ -37,14 +37,6 @@ class EditEntityAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->entityManager = $entity_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
// @see edit.routing.yml
|
||||
return array('_access_edit_entity');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -7,9 +7,8 @@
|
|||
|
||||
namespace Drupal\edit\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\edit\Access\EditEntityFieldAccessCheckInterface;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -19,7 +18,7 @@ use Drupal\Core\Entity\EntityInterface;
|
|||
/**
|
||||
* Access check for editing entity fields.
|
||||
*/
|
||||
class EditEntityFieldAccessCheck implements StaticAccessCheckInterface, EditEntityFieldAccessCheckInterface {
|
||||
class EditEntityFieldAccessCheck implements AccessInterface, EditEntityFieldAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* The entity manager.
|
||||
|
@ -38,13 +37,6 @@ class EditEntityFieldAccessCheck implements StaticAccessCheckInterface, EditEnti
|
|||
$this->entityManager = $entity_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_edit_entity_field');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -65,13 +65,6 @@ class EditEntityAccessCheckTest extends UnitTestCase {
|
|||
$this->editAccessCheck = new EditEntityAccessCheck($this->entityManager);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the appliesTo method for the access checker.
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$this->assertEquals($this->editAccessCheck->appliesTo(), array('_access_edit_entity'), 'Access checker returned the expected appliesTo() array.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides test data for testAccess().
|
||||
*
|
||||
|
|
|
@ -67,13 +67,6 @@ class EditEntityFieldAccessCheckTest extends UnitTestCase {
|
|||
$this->editAccessCheck = new EditEntityFieldAccessCheck($this->entityManager);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the appliesTo method for the access checker.
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$this->assertEquals($this->editAccessCheck->appliesTo(), array('_access_edit_entity_field'), 'Access checker returned the expected appliesTo() array.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides test data for testAccess().
|
||||
*
|
||||
|
|
|
@ -8,9 +8,9 @@ services:
|
|||
class: Drupal\field_ui\Access\ViewModeAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _field_ui_view_mode_access }
|
||||
access_check.field_ui.form_mode:
|
||||
class: Drupal\field_ui\Access\FormModeAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _field_ui_form_mode_access }
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Drupal\field_ui\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Allows access to routes to be controlled by an '_access' boolean parameter.
|
||||
*/
|
||||
class FormModeAccessCheck implements StaticAccessCheckInterface {
|
||||
class FormModeAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The entity manager.
|
||||
|
@ -35,13 +35,6 @@ class FormModeAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->entityManager = $entity_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_field_ui_form_mode_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
|
||||
namespace Drupal\field_ui\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Allows access to routes to be controlled by an '_access' boolean parameter.
|
||||
*/
|
||||
class ViewModeAccessCheck implements StaticAccessCheckInterface {
|
||||
class ViewModeAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The entity manager.
|
||||
|
@ -35,13 +35,6 @@ class ViewModeAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->entityManager = $entity_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_field_ui_view_mode_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -9,7 +9,7 @@ services:
|
|||
access_check.filter_disable:
|
||||
class: Drupal\filter\Access\FormatDisableCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _filter_disable_format_access }
|
||||
plugin.manager.filter:
|
||||
class: Drupal\filter\FilterPluginManager
|
||||
parent: default_plugin_manager
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\filter\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Checks access for disabling text formats.
|
||||
*/
|
||||
class FormatDisableCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_filter_disable_format_access');
|
||||
}
|
||||
class FormatDisableCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
|
||||
namespace Drupal\node\Access;
|
||||
|
||||
use Drupal\Core\Entity\EntityCreateAccessCheck;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,12 +16,24 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Determines access to for node add pages.
|
||||
*/
|
||||
class NodeAddAccessCheck extends EntityCreateAccessCheck {
|
||||
class NodeAddAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
* The entity manager.
|
||||
*
|
||||
* @var \Drupal\Core\Entity\EntityManagerInterface
|
||||
*/
|
||||
protected $requirementsKey = '_node_add_access';
|
||||
protected $entityManager;
|
||||
|
||||
/**
|
||||
* Constructs a EntityCreateAccessCheck object.
|
||||
*
|
||||
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
|
||||
* The entity manager.
|
||||
*/
|
||||
public function __construct(EntityManagerInterface $entity_manager) {
|
||||
$this->entityManager = $entity_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
namespace Drupal\node\Access;
|
||||
|
||||
use Drupal\Core\Access\AccessCheckInterface;
|
||||
use Drupal\Core\Database\Connection;
|
||||
use Drupal\Core\Entity\EntityManagerInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\node\NodeInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -18,7 +18,7 @@ use Symfony\Component\Routing\Route;
|
|||
/**
|
||||
* Provides an access checker for node revisions.
|
||||
*/
|
||||
class NodeRevisionAccessCheck implements AccessCheckInterface {
|
||||
class NodeRevisionAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The node storage.
|
||||
|
@ -62,13 +62,6 @@ class NodeRevisionAccessCheck implements AccessCheckInterface {
|
|||
$this->connection = $connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function applies(Route $route) {
|
||||
return array_key_exists('_access_node_revision', $route->getRequirements());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -6,9 +6,9 @@ services:
|
|||
class: Drupal\node\Access\NodeRevisionAccessCheck
|
||||
arguments: ['@entity.manager', '@database']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_node_revision }
|
||||
access_check.node.add:
|
||||
class: Drupal\node\Access\NodeAddAccessCheck
|
||||
arguments: ['@entity.manager']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _node_add_access }
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\search\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Drupal\search\SearchPluginManager;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\Routing\Route;
|
|||
/**
|
||||
* Checks access for viewing search.
|
||||
*/
|
||||
class SearchAccessCheck implements StaticAccessCheckInterface {
|
||||
class SearchAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* The search plugin manager.
|
||||
|
@ -35,13 +35,6 @@ class SearchAccessCheck implements StaticAccessCheckInterface {
|
|||
$this->searchManager = $search_plugin_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_search_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -16,13 +16,6 @@ use Symfony\Component\Routing\Route;
|
|||
*/
|
||||
class SearchPluginAccessCheck extends SearchAccessCheck {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_search_plugin_view_access');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -7,10 +7,10 @@ services:
|
|||
class: Drupal\search\Access\SearchAccessCheck
|
||||
arguments: ['@plugin.manager.search']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _search_access }
|
||||
|
||||
access_check.search_plugin:
|
||||
class: Drupal\search\Access\SearchPluginAccessCheck
|
||||
arguments: ['@plugin.manager.search']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _search_plugin_view_access }
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains Drupal\shortcut\Access\LinkAccessCheck.
|
||||
*/
|
||||
|
||||
namespace Drupal\shortcut\Access;
|
||||
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* Provides an access check for shortcut link delete routes.
|
||||
*/
|
||||
class LinkAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function access(Route $route, Request $request, AccountInterface $account) {
|
||||
$menu_link = $request->attributes->get('menu_link');
|
||||
$set_name = str_replace('shortcut-', '', $menu_link['menu_name']);
|
||||
if ($shortcut_set = shortcut_set_load($set_name)) {
|
||||
return shortcut_set_edit_access($shortcut_set) ? static::ALLOW : static::DENY;
|
||||
}
|
||||
return static::DENY;
|
||||
}
|
||||
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\shortcut\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Provides an access check for shortcut link delete routes.
|
||||
*/
|
||||
class ShortcutSetEditAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_shortcut_set_edit');
|
||||
}
|
||||
class ShortcutSetEditAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\shortcut\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Provides an access check for shortcut link delete routes.
|
||||
*/
|
||||
class ShortcutSetSwitchAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_shortcut_set_switch');
|
||||
}
|
||||
class ShortcutSetSwitchAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
services:
|
||||
access_check.shortcut.link:
|
||||
class: Drupal\shortcut\Access\LinkAccessCheck
|
||||
tags:
|
||||
- { name: access_check, applies_to: _access_shortcut_link }
|
||||
|
||||
access_check.shortcut.shortcut_set_edit:
|
||||
class: Drupal\shortcut\Access\ShortcutSetEditAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_shortcut_set_edit }
|
||||
|
||||
access_check.shortcut.shortcut_set_switch:
|
||||
class: Drupal\shortcut\Access\ShortcutSetSwitchAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_shortcut_set_switch }
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\system\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for cron routes.
|
||||
*/
|
||||
class CronAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_system_cron');
|
||||
}
|
||||
class CronAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Implements AccessCheckInterface::access().
|
||||
|
|
|
@ -2,7 +2,7 @@ services:
|
|||
access_check.cron:
|
||||
class: Drupal\system\Access\CronAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_system_cron }
|
||||
system.manager:
|
||||
class: Drupal\system\SystemManager
|
||||
arguments: ['@module_handler', '@database', '@entity.manager']
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\router_test\Access;
|
||||
|
||||
use Drupal\Core\Access\AccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\Routing\Route;
|
|||
/**
|
||||
* Defines an access checker similar to DefaultAccessCheck
|
||||
*/
|
||||
class DefinedTestAccessCheck implements AccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function applies(Route $route) {
|
||||
return array_key_exists('_test_access', $route->getRequirements());
|
||||
}
|
||||
class DefinedTestAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\router_test\Access;
|
||||
|
||||
use Drupal\Core\Access\AccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for test routes.
|
||||
*/
|
||||
class TestAccessCheck implements AccessCheckInterface {
|
||||
|
||||
/**
|
||||
* Implements AccessCheckInterface::applies().
|
||||
*/
|
||||
public function applies(Route $route) {
|
||||
return array_key_exists('_access_router_test', $route->getRequirements());
|
||||
}
|
||||
class TestAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Implements AccessCheckInterface::access().
|
||||
|
|
|
@ -21,6 +21,6 @@ class RouterTestServiceProvider implements ServiceProviderInterface {
|
|||
public function register(ContainerBuilder $container) {
|
||||
$container->register('router_test.subscriber', 'Drupal\router_test\RouteTestSubscriber')->addTag('event_subscriber');
|
||||
$container->register('access_check.router_test', 'Drupal\router_test\Access\TestAccessCheck')
|
||||
->addTag('access_check');
|
||||
->addTag('access_check', array('applies_to' => '_access_router_test'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\tracker\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for user tracker routes.
|
||||
*/
|
||||
class ViewOwnTrackerAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_tracker_own_information');
|
||||
}
|
||||
class ViewOwnTrackerAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -2,4 +2,4 @@ services:
|
|||
access_check.tracker.view_own:
|
||||
class: Drupal\tracker\Access\ViewOwnTrackerAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_tracker_own_information }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
namespace Drupal\update\Access;
|
||||
|
||||
use Drupal\Component\Utility\Settings;
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -16,7 +16,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Determines whether allow authorized operations is set.
|
||||
*/
|
||||
class UpdateManagerAccessCheck implements StaticAccessCheckInterface {
|
||||
class UpdateManagerAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Settings Service.
|
||||
|
@ -28,20 +28,13 @@ class UpdateManagerAccessCheck implements StaticAccessCheckInterface {
|
|||
/**
|
||||
* Constructs a UpdateManagerAccessCheck object.
|
||||
*
|
||||
* @param \Drupal\update\updateManager $update_manager
|
||||
* update Manager Service.
|
||||
* @param \Drupal\Component\Utility\Settings $settings
|
||||
* The read-only settings container.
|
||||
*/
|
||||
public function __construct(Settings $settings) {
|
||||
$this->settings = $settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_update_manager');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
|
|
@ -3,4 +3,4 @@ services:
|
|||
class: Drupal\update\Access\UpdateManagerAccessCheck
|
||||
arguments: ['@settings']
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_update_manager }
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\user\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Determines access to routes based on login status of current user.
|
||||
*/
|
||||
class LoginStatusCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_user_is_logged_in');
|
||||
}
|
||||
class LoginStatusCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\user\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Determines access to routes based on permissions defined via hook_permission().
|
||||
*/
|
||||
class PermissionAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_permission');
|
||||
}
|
||||
class PermissionAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Implements AccessCheckInterface::access().
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\user\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\Routing\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
@ -15,14 +15,7 @@ use Symfony\Component\HttpFoundation\Request;
|
|||
/**
|
||||
* Access check for user registration routes.
|
||||
*/
|
||||
class RegisterAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_access_user_register');
|
||||
}
|
||||
class RegisterAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* Implements AccessCheckInterface::access().
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
namespace Drupal\user\Access;
|
||||
|
||||
use Drupal\Core\Access\StaticAccessCheckInterface;
|
||||
use Drupal\Core\Routing\Access\AccessInterface;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Route;
|
||||
|
@ -19,14 +19,7 @@ use Symfony\Component\Routing\Route;
|
|||
* single role, users with that role with have access. If you specify multiple
|
||||
* ones you can conjunct them with AND by using a "+" and with OR by using ",".
|
||||
*/
|
||||
class RoleAccessCheck implements StaticAccessCheckInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function appliesTo() {
|
||||
return array('_role');
|
||||
}
|
||||
class RoleAccessCheck implements AccessInterface {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
|
|
@ -2,19 +2,19 @@ services:
|
|||
access_check.permission:
|
||||
class: Drupal\user\Access\PermissionAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _permission }
|
||||
access_check.user.register:
|
||||
class: Drupal\user\Access\RegisterAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _access_user_register }
|
||||
access_check.user.role:
|
||||
class: Drupal\user\Access\RoleAccessCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _role }
|
||||
access_check.user.login_status:
|
||||
class: Drupal\user\Access\LoginStatusCheck
|
||||
tags:
|
||||
- { name: access_check }
|
||||
- { name: access_check, applies_to: _user_is_logged_in }
|
||||
user.data:
|
||||
class: Drupal\user\UserData
|
||||
arguments: ['@database']
|
||||
|
|
|
@ -352,7 +352,7 @@ class AccessManagerTest extends UnitTestCase {
|
|||
$this->setupAccessChecker();
|
||||
$access_check = new DefinedTestAccessCheck();
|
||||
$this->container->register('test_access_defined', $access_check);
|
||||
$this->accessManager->addCheckService('test_access_defined');
|
||||
$this->accessManager->addCheckService('test_access_defined', array('_test_access'));
|
||||
|
||||
$request = new Request();
|
||||
|
||||
|
@ -370,21 +370,6 @@ class AccessManagerTest extends UnitTestCase {
|
|||
$this->assertSame($this->accessManager->check($route, $request, $this->account), $expected_access);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the static access checker interface.
|
||||
*/
|
||||
public function testStaticAccessCheckInterface() {
|
||||
$mock_static = $this->getMock('Drupal\Core\Access\StaticAccessCheckInterface');
|
||||
$mock_static->expects($this->once())
|
||||
->method('appliesTo')
|
||||
->will($this->returnValue(array('_access')));
|
||||
|
||||
$this->container->set('test_static_access', $mock_static);
|
||||
$this->accessManager->addCheckService('test_static_access');
|
||||
|
||||
$this->accessManager->setChecks($this->routeCollection);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the checkNamedRoute method.
|
||||
*
|
||||
|
@ -593,7 +578,7 @@ class AccessManagerTest extends UnitTestCase {
|
|||
$this->accessManager->setContainer($this->container);
|
||||
$access_check = new DefaultAccessCheck();
|
||||
$this->container->register('test_access_default', $access_check);
|
||||
$this->accessManager->addCheckService('test_access_default');
|
||||
$this->accessManager->addCheckService('test_access_default', array('_access'));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -62,13 +62,6 @@ class CsrfAccessCheckTest extends UnitTestCase {
|
|||
$this->accessCheck = new CsrfAccessCheck($this->csrfToken);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests CsrfAccessCheck::appliesTo().
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$this->assertEquals($this->accessCheck->appliesTo(), array('_csrf_token'), 'Access checker returned the expected appliesTo() array.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the access() method with a valid token.
|
||||
*/
|
||||
|
|
|
@ -52,14 +52,6 @@ class CustomAccessCheckTest extends UnitTestCase {
|
|||
$this->accessChecker = new CustomAccessCheck($this->controllerResolver);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests the appliesTo method.
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$this->assertEquals($this->accessChecker->appliesTo(), array('_custom_access'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the access method.
|
||||
*/
|
||||
|
|
|
@ -52,14 +52,6 @@ class DefaultAccessCheckTest extends UnitTestCase {
|
|||
$this->accessChecker = new DefaultAccessCheck();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests the appliesTo method.
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$this->assertEquals($this->accessChecker->appliesTo(), array('_access'), 'Access checker returned the expected appliesTo() array.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the access method.
|
||||
*/
|
||||
|
|
|
@ -28,14 +28,6 @@ class EntityAccessCheckTest extends UnitTestCase {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the appliesTo method for the access checker.
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$entity_access = new EntityAccessCheck();
|
||||
$this->assertEquals($entity_access->appliesTo(), array('_entity_access'), 'Access checker returned the expected appliesTo() array.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the method for checking access to routes.
|
||||
*/
|
||||
|
|
|
@ -44,15 +44,6 @@ class EntityCreateAccessCheckTest extends UnitTestCase {
|
|||
parent::setUp();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the appliesTo method for the access checker.
|
||||
*/
|
||||
public function testAppliesTo() {
|
||||
$entity_manager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface');
|
||||
|
||||
$entity_access = new EntityCreateAccessCheck($entity_manager);
|
||||
$this->assertEquals($entity_access->appliesTo(), array('_entity_create_access'), 'Access checker returned the expected appliesTo() array.');
|
||||
}
|
||||
/**
|
||||
* Provides test data for testAccess.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue