AccessPluginBase.php in Drupal 8
Same filename and directory in other branches
Namespace
Drupal\views\Plugin\views\accessFile
core/modules/views/src/Plugin/views/access/AccessPluginBase.phpView source
<?php
namespace Drupal\views\Plugin\views\access;
use Drupal\Core\Session\AccountInterface;
use Drupal\views\Plugin\views\PluginBase;
use Symfony\Component\Routing\Route;
/**
* @defgroup views_access_plugins Views access plugins
* @{
* Plugins to handle access checking for views.
*
* Access plugins are responsible for controlling access to the view.
*
* Access plugins extend \Drupal\views\Plugin\views\access\AccessPluginBase,
* implementing the access() and alterRouteDefinition() methods. They must be
* annotated with \Drupal\views\Annotation\ViewsAccess annotation, and they
* must be in namespace directory Plugin\views\access.
*
* @ingroup views_plugins
* @see plugin_api
*/
/**
* The base plugin to handle access control.
*
* Access plugins are responsible for controlling a user's access to the view.
* Views includes plugins for checking user roles and individual permissions.
*
* To define an access control plugin, extend this base class. Your access
* plugin should have an annotation that includes the plugin's metadata, for
* example:
* @Plugin(
* id = "denyall",
* title = @Translation("No Access"),
* help = @Translation("Will not be accessible.")
* )
* The definition should include the following keys:
* - id: The unique identifier of your access plugin.
* - title: The human-readable name for your access plugin.
* - help: A short help message for your plugin.
*
* @see \Drupal\views\Plugin\ViewsPluginManager
*/
abstract class AccessPluginBase extends PluginBase {
/**
* {@inheritdoc}
*/
public function summaryTitle() {
return $this
->t('Unknown');
}
/**
* Determine if the current user has access or not.
*
* @param \Drupal\Core\Session\AccountInterface $account
* The user who wants to access this view.
*
* @return bool
* Returns whether the user has access to the view.
*/
public abstract function access(AccountInterface $account);
/**
* Allows access plugins to alter the route definition of a view.
*
* Likely the access plugin will add new requirements, so its custom access
* checker can be applied.
*
* @param \Symfony\Component\Routing\Route $route
* The route to change.
*/
public abstract function alterRouteDefinition(Route $route);
}
/**
* @}
*/
Classes
Name | Description |
---|---|
AccessPluginBase | The base plugin to handle access control. |