You are here

public function EntityAccessByFieldPermissions::permissions in Open Social 8.8

Same name and namespace in other branches
  1. 8.9 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  2. 8 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  3. 8.2 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  4. 8.3 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  5. 8.4 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  6. 8.5 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  7. 8.6 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  8. 8.7 modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  9. 10.3.x modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  10. 10.0.x modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  11. 10.1.x modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()
  12. 10.2.x modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php \Drupal\entity_access_by_field\EntityAccessByFieldPermissions::permissions()

Return all the permissions generated by this user.

1 string reference to 'EntityAccessByFieldPermissions::permissions'
entity_access_by_field.permissions.yml in modules/custom/entity_access_by_field/entity_access_by_field.permissions.yml
modules/custom/entity_access_by_field/entity_access_by_field.permissions.yml

File

modules/custom/entity_access_by_field/src/EntityAccessByFieldPermissions.php, line 58

Class

EntityAccessByFieldPermissions
EntityAccessByFieldPermissions.

Namespace

Drupal\entity_access_by_field

Code

public function permissions() {
  $permissions = [];
  $contentTypes = $this
    ->getContentTypes();
  foreach ($contentTypes as $bundle) {
    $entity_type = 'node';
    $fields = $this
      ->getEntityAccessFields($entity_type, $bundle);

    /** @var \Drupal\field\Entity\FieldConfig $field */
    foreach ($fields as $field) {
      $field_storage = $field
        ->getFieldStorageDefinition();

      // @TODO Add support for allowed_values_function.
      $allowed_values = $field_storage
        ->getSetting('allowed_values');
      if (!empty($allowed_values)) {
        foreach ($allowed_values as $field_key => $field_label) {
          if (!in_array($field_key, $this
            ->getIgnoredValues())) {

            // e.g. label = node.article.field_content_visibility:public.
            $permission_label = $field
              ->id() . ':' . $field_key;
            $permission = 'view ' . $permission_label . ' content';
            $permissions[$permission] = [
              'title' => $this
                ->t('View @label content', [
                '@label' => $permission_label,
              ]),
            ];
          }
        }
      }
    }
  }
  return $permissions;
}