group_content_menu-8.x-1.0-rc3/src/Plugin/Group/RelationHandler/GroupContentMenuPermissionProvider.php

src/Plugin/Group/RelationHandler/GroupContentMenuPermissionProvider.php
<?php

namespace Drupal\group_content_menu\Plugin\Group\RelationHandler;

use Drupal\group\Plugin\Group\RelationHandler\PermissionProviderInterface;
use Drupal\group\Plugin\Group\RelationHandler\PermissionProviderTrait;

/**
 * Provide group permissions for group_content_menu entities.
 */
class GroupContentMenuPermissionProvider implements PermissionProviderInterface {

  use PermissionProviderTrait;

  /**
   * Constructs a new GroupContentMenuPermissionProvider.
   *
   * @param \Drupal\group\Plugin\Group\RelationHandler\PermissionProviderInterface $parent
   *   The parent permission provider.
   */
  public function __construct(PermissionProviderInterface $parent) {
    $this->parent = $parent;
  }

  /**
   * {@inheritdoc}
   */
  public function getPermission($operation, $target, $scope = 'any') {
    if (($target === 'relationship' || $target === 'entity') && $operation == 'create') {
      return "manage group_content_menu menu items";
    }
    if ($target == 'entity' && in_array($operation, ['view', 'update', 'delete'])) {
      return 'manage group_content_menu';
    }
    if ($target == 'relationship' && in_array($operation, ['view'])) {
      return 'manage group_content_menu';
    }

    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  public function buildPermissions() {
    $permissions = [];

    $permissions["create {$this->pluginId} content"] = [
      'title' => 'Relate menu',
      'description' => 'Allows you to relate a menu to the group.',
    ];

    $permissions['access group content menu overview'] = $this->buildPermission(
      'Access group content menu overview',
      'Access the overview of all menus'
    );
    $permissions['manage group_content_menu'] = $this->buildPermission(
      'Manage menus',
      'Create, update and delete menus'
    );
    $permissions['manage group_content_menu menu items'] = $this->buildPermission(
      'Manage menu items',
      'Create, update and delete menu items within group menus'
    );
    $permissions['manage group_content_menu menu item translations'] = $this->buildPermission(
      'Manage menu items translations',
      'Create, update and delete menu item translations within group menus'
    );

    return $permissions;
  }

}

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

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