You are here

protected function RESTTestBase::entityPermissions in Drupal 8

Provides the necessary user permissions for entity operations.

Parameters

string $entity_type_id: The entity type.

string $operation: The operation, one of 'view', 'create', 'update' or 'delete'.

Return value

array The set of user permission strings.

File

core/modules/rest/src/Tests/RESTTestBase.php, line 466

Class

RESTTestBase
Test helper class that provides a REST client method to send HTTP requests.

Namespace

Drupal\rest\Tests

Code

protected function entityPermissions($entity_type_id, $operation) {
  switch ($entity_type_id) {
    case 'entity_test':
      switch ($operation) {
        case 'view':
          return [
            'view test entity',
          ];
        case 'create':
        case 'update':
        case 'delete':
          return [
            'administer entity_test content',
          ];
      }
    case 'node':
      switch ($operation) {
        case 'view':
          return [
            'access content',
          ];
        case 'create':
          return [
            'create resttest content',
          ];
        case 'update':
          return [
            'edit any resttest content',
          ];
        case 'delete':
          return [
            'delete any resttest content',
          ];
      }
    case 'comment':
      switch ($operation) {
        case 'view':
          return [
            'access comments',
          ];
        case 'create':
          return [
            'post comments',
            'skip comment approval',
          ];
        case 'update':
          return [
            'edit own comments',
          ];
        case 'delete':
          return [
            'administer comments',
          ];
      }
      break;
    case 'user':
      switch ($operation) {
        case 'view':
          return [
            'access user profiles',
          ];
        default:
          return [
            'administer users',
          ];
      }
    default:
      if ($this
        ->isConfigEntity($entity_type_id)) {
        $entity_type = \Drupal::entityTypeManager()
          ->getDefinition($entity_type_id);
        if ($admin_permission = $entity_type
          ->getAdminPermission()) {
          return [
            $admin_permission,
          ];
        }
      }
  }
  return [];
}