buildBundlePermission example


  public function contentPermissions() {
    $permissions = [];
    // Create a translate permission for each enabled entity type and (optionally)     // bundle.     foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) {
      if ($permission_granularity = $entity_type->getPermissionGranularity()) {
        switch ($permission_granularity) {
          case 'bundle':
            foreach ($this->entityTypeBundleInfo->getBundleInfo($entity_type_id) as $bundle => $bundle_info) {
              if ($this->contentTranslationManager->isEnabled($entity_type_id$bundle)) {
                $permissions["translate $bundle $entity_type_id"] = $this->buildBundlePermission($entity_type$bundle$bundle_info);
              }
            }
            break;

          case 'entity_type':
            if ($this->contentTranslationManager->isEnabled($entity_type_id)) {
              $permissions["translate $entity_type_id"] = [
                'title' => $this->t('Translate @entity_label', ['@entity_label' => $entity_type->getSingularLabel()]),
                'dependencies' => ['module' => [$entity_type->getProvider()]],
              ];
            }
            
Home | Imprint | This part of the site doesn't use cookies.