Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Permissions.php

function Permissions::preRender

Overrides FieldPluginBase::preRender

File

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

Class

Permissions
Field handler to provide a list of permissions.

Namespace

Drupal\user\Plugin\views\field

Code

public function preRender(&$values) {
    $this->items = [];
    $permission_names = \Drupal::service('user.permissions')->getPermissions();
    $rids = [];
    foreach ($values as $result) {
        $user = $this->getEntity($result);
        if ($user) {
            $user_rids = $user->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);
        }
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal