You are here

class Permissions in Drupal 10

Same name in this branch
  1. 10 core/modules/content_moderation/src/Permissions.php \Drupal\content_moderation\Permissions
  2. 10 core/modules/user/src/Plugin/views/filter/Permissions.php \Drupal\user\Plugin\views\filter\Permissions
  3. 10 core/modules/user/src/Plugin/views/field/Permissions.php \Drupal\user\Plugin\views\field\Permissions
Same name and namespace in other branches
  1. 8 core/modules/user/src/Plugin/views/field/Permissions.php \Drupal\user\Plugin\views\field\Permissions
  2. 9 core/modules/user/src/Plugin/views/field/Permissions.php \Drupal\user\Plugin\views\field\Permissions

Field handler to provide a list of permissions.

Plugin annotation

@ViewsField("user_permissions");

Hierarchy

Expanded class hierarchy of Permissions

7 string references to 'Permissions'
drupal6.php in core/modules/migrate_drupal/tests/fixtures/drupal6.php
A database agnostic dump for testing purposes.
drupal7.php in core/modules/tracker/tests/fixtures/drupal7.php
A database agnostic dump for testing purposes.
drupal7.php in core/modules/rdf/tests/fixtures/drupal7.php
A database agnostic dump for testing purposes.
drupal7.php in core/modules/migrate_drupal/tests/fixtures/drupal7.php
A database agnostic dump for testing purposes.
user.links.task.yml in core/modules/user/user.links.task.yml
core/modules/user/user.links.task.yml

... See full list

File

core/modules/user/src/Plugin/views/field/Permissions.php, line 19

Namespace

Drupal\user\Plugin\views\field
View source
class Permissions extends PrerenderList {

  /**
   * The role storage.
   *
   * @var \Drupal\user\RoleStorageInterface
   */
  protected $roleStorage;

  /**
   * The module handler.
   *
   * @var \Drupal\Core\Extension\ModuleHandlerInterface
   */
  protected $moduleHandler;

  /**
   * Constructs a \Drupal\user\Plugin\views\field\Permissions object.
   *
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin_id for the plugin instance.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
   *   The module handler.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, ModuleHandlerInterface $module_handler, EntityTypeManagerInterface $entity_type_manager) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->roleStorage = $entity_type_manager
      ->getStorage('user_role');
    $this->moduleHandler = $module_handler;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container
      ->get('module_handler'), $container
      ->get('entity_type.manager'));
  }

  /**
   * {@inheritdoc}
   */
  public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) {
    parent::init($view, $display, $options);
    $this->additional_fields['uid'] = [
      'table' => 'users_field_data',
      'field' => 'uid',
    ];
  }
  public function query() {
    $this
      ->addAdditionalFields();
    $this->field_alias = $this->aliases['uid'];
  }
  public function preRender(&$values) {
    $this->items = [];
    $permission_names = \Drupal::service('user.permissions')
      ->getPermissions();
    $rids = [];
    foreach ($values as $result) {
      $user_rids = $this
        ->getEntity($result)
        ->getRoles();
      $uid = $this
        ->getValue($result);
      foreach ($user_rids as $rid) {
        $rids[$rid][] = $uid;
      }
    }
    if ($rids) {
      $roles = $this->roleStorage
        ->loadMultiple(array_keys($rids));
      foreach ($rids as $rid => $role_uids) {
        foreach ($roles[$rid]
          ->getPermissions() as $permission) {
          foreach ($role_uids as $uid) {
            $this->items[$uid][$permission]['permission'] = $permission_names[$permission]['title'];
          }
        }
      }
      foreach ($this->items as &$permission) {
        ksort($permission);
      }
    }
  }
  public function render_item($count, $item) {
    return $item['permission'];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DerivativeInspectionInterface::getBaseId public function Gets the base_plugin_id of the plugin instance.
DerivativeInspectionInterface::getDerivativeId public function Gets the derivative_id of the plugin instance.
FieldHandlerInterface::advancedRender public function Renders a field using advanced settings.
FieldHandlerInterface::clickSort public function Adds an ORDER BY clause to the query for click sort columns.
FieldHandlerInterface::clickSortable public function Determines if this field is click sortable.
FieldHandlerInterface::elementClasses public function Returns the class of the field.
FieldHandlerInterface::elementLabelClasses public function Returns the class of the field's label.
FieldHandlerInterface::elementLabelType public function Returns an HTML element for the label based upon the field's element type.
FieldHandlerInterface::elementType public function Returns an HTML element based upon the field's element type.
FieldHandlerInterface::elementWrapperClasses public function Returns the class of the field's wrapper.
FieldHandlerInterface::elementWrapperType public function Returns an HTML element for the wrapper based upon the field's element type.
FieldHandlerInterface::getElements public function Provides a list of elements valid for field HTML.
FieldHandlerInterface::getEntity public function Gets the entity matching the current row and relationship.
FieldHandlerInterface::getRenderTokens public function Gets the 'render' tokens to use for advanced rendering.
FieldHandlerInterface::getValue public function Gets the value that's supposed to be rendered.
FieldHandlerInterface::isValueEmpty public function Checks if a field value is empty.
FieldHandlerInterface::label public function Gets this field's label.
FieldHandlerInterface::postRender public function Runs after every field has been rendered.
FieldHandlerInterface::render public function Renders the field.
FieldHandlerInterface::renderText public function Performs an advanced text render for the item.
FieldHandlerInterface::theme public function Renders row values using $this->themeFunctions() as #theme.
FieldHandlerInterface::tokenizeValue public function Replaces a value with tokens from the last field.
FieldHandlerInterface::useStringGroupBy public function Determines if this field will be available as an option to group the result by in the style settings.
Permissions::$moduleHandler protected property The module handler.
Permissions::$roleStorage protected property The role storage.
Permissions::create public static function Overrides ViewsPluginInterface::create
Permissions::init public function Initialize the plugin. Overrides ViewsPluginInterface::init
Permissions::preRender public function Runs before any fields are rendered. Overrides FieldHandlerInterface::preRender
Permissions::query public function Add anything to the query that we might need to. Overrides ViewsPluginInterface::query
Permissions::render_item public function Renders a single item of a row. Overrides MultiItemsFieldHandlerInterface::render_item
Permissions::__construct public function Constructs a \Drupal\user\Plugin\views\field\Permissions object.
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 1
PluginInspectionInterface::getPluginId public function Gets the plugin_id of the plugin instance. 1
PrerenderList::$items public property Stores all items which are used to render the items.
PrerenderList::buildOptionsForm public function Provide a form to edit options for this plugin. Overrides ViewsPluginInterface::buildOptionsForm 1
PrerenderList::defineOptions protected function 1
PrerenderList::getItems public function Items should be stored in the result array, if possible, as an array with 'value' as the actual displayable value of the item, plus any items that might be found in the 'alter' options array for creating links, such as… Overrides MultiItemsFieldHandlerInterface::getItems
PrerenderList::renderItems public function Render all items in this field together. Overrides MultiItemsFieldHandlerInterface::renderItems
ViewsHandlerInterface::access public function Check whether given user has access to this handler.
ViewsHandlerInterface::adminLabel public function Return a string representing this handler's name in the UI.
ViewsHandlerInterface::adminSummary public function Provide text for the administrative summary.
ViewsHandlerInterface::breakString public static function Breaks x,y,z and x+y+z into an array.
ViewsHandlerInterface::broken public function Determines if the handler is considered 'broken', meaning it's a placeholder used when a handler can't be found.
ViewsHandlerInterface::ensureMyTable public function Ensure the main table for this handler is in the query. This is used a lot.
ViewsHandlerInterface::getEntityType public function Determines the entity type used by this handler.
ViewsHandlerInterface::getField public function Shortcut to get a handler's raw field value.
ViewsHandlerInterface::getJoin public function Get the join object that should be used for this handler.
ViewsHandlerInterface::getTableJoin public static function Fetches a handler to join one table to a primary table from the data cache.
ViewsHandlerInterface::postExecute public function Run after the view is executed, before the result is cached.
ViewsHandlerInterface::preQuery public function Run before the view is built.
ViewsHandlerInterface::sanitizeValue public function Sanitize the value for output.
ViewsHandlerInterface::setRelationship public function Called just prior to query(), this lets a handler set up any relationship it needs.
ViewsHandlerInterface::showExposeForm public function Shortcut to display the exposed options form.
ViewsPluginInterface::destroy public function Clears a plugin.
ViewsPluginInterface::filterByDefinedOptions public function Filter out stored options depending on the defined options.
ViewsPluginInterface::getAvailableGlobalTokens public function Returns an array of available token replacements.
ViewsPluginInterface::getProvider public function Returns the plugin provider.
ViewsPluginInterface::globalTokenForm public function Adds elements for available core tokens to a form.
ViewsPluginInterface::globalTokenReplace public function Returns a string with any core tokens replaced.
ViewsPluginInterface::pluginTitle public function Return the human readable name of the display.
ViewsPluginInterface::preRenderAddFieldsetMarkup public static function Moves form elements into fieldsets for presentation purposes.
ViewsPluginInterface::preRenderFlattenData public static function Flattens the structure of form elements.
ViewsPluginInterface::submitOptionsForm public function Handle any special handling on the validate form.
ViewsPluginInterface::summaryTitle public function Returns the summary of the settings in the display.
ViewsPluginInterface::themeFunctions public function Provide a full list of possible theme templates used by this style.
ViewsPluginInterface::unpackOptions public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
ViewsPluginInterface::usesOptions public function Returns the usesOptions property.
ViewsPluginInterface::validate public function Validate that the plugin is correct and can be saved.
ViewsPluginInterface::validateOptionsForm public function Validate the options form.