layout_paragraphs-1.0.x-dev/modules/layout_paragraphs_permissions/src/Access/LayoutParagraphsPermissionsBuilderAccess.php

modules/layout_paragraphs_permissions/src/Access/LayoutParagraphsPermissionsBuilderAccess.php
<?php

namespace Drupal\layout_paragraphs_permissions\Access;

use Drupal\Core\Session\AccountInterface;
use Drupal\paragraphs\ParagraphsTypeInterface;
use Drupal\layout_paragraphs\LayoutParagraphsLayout;
use Drupal\layout_paragraphs\Access\LayoutParagraphsBuilderAccess;
use Drupal\Core\Access\AccessResult;

/**
 * Defines a Layout Paragraphs Permissions Builder Access class.
 */
class LayoutParagraphsPermissionsBuilderAccess extends LayoutParagraphsBuilderAccess {

  /**
   * {@inheritdoc}
   */
  public function access(
    AccountInterface $account,
    LayoutParagraphsLayout $layout_paragraphs_layout,
    ?string $operation = NULL,
    ?string $component_uuid = NULL,
    ?ParagraphsTypeInterface $paragraph_type = NULL,
  ) {
    $access = parent::access($account, $layout_paragraphs_layout, $operation, $component_uuid, $paragraph_type);
    if ($operation == 'reorder') {
      $reorder_access = $account->hasPermission('reorder layout paragraphs components')
        ? AccessResult::allowed()
        : AccessResult::forbidden();
      $access = $access->andIf($reorder_access);
    }
    if ($operation == 'duplicate') {
      $duplicate_access = $account->hasPermission('duplicate layout paragraphs components')
        ? AccessResult::allowed()
        : AccessResult::forbidden();
      $access = $access->andIf($duplicate_access);
    }
    return $access;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc