layout_paragraphs-1.0.x-dev/tests/modules/layout_paragraphs_complex_permissions_test/src/PermissionsProvider.php
tests/modules/layout_paragraphs_complex_permissions_test/src/PermissionsProvider.php
<?php
namespace Drupal\layout_paragraphs_complex_permissions_test;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\node\Entity\NodeType;
/**
* Provides reorder permissions per content type.
*/
class PermissionsProvider {
use StringTranslationTrait;
/**
* Returns an array of node type permissions.
*
* @return array
* The node type permissions.
* @see \Drupal\user\PermissionHandlerInterface::getPermissions()
*/
public function nodeTypePermissions() {
$perms = [];
// Generate node permissions for all node types.
foreach (NodeType::loadMultiple() as $type) {
$perms += $this->buildPermissions($type);
}
return $perms;
}
/**
* Returns a list of node permissions for a given node type.
*
* @param \Drupal\node\Entity\NodeType $type
* The node type.
*
* @return array
* An associative array of permission names and descriptions.
*/
protected function buildPermissions(NodeType $type) {
$type_id = $type->id();
$type_params = ['%type_name' => $type->label()];
return [
"reorder layout paragraph components for $type_id content" => [
'title' => $this->t('%type_name: Reorder layout paragraphs components', $type_params),
],
];
}
}
