Namespace
Drupal\entity_clone_extras
File
-
modules/entity_clone_extras/src/EntityCloneExtrasPermissions.php
View source
<?php
namespace Drupal\entity_clone_extras;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\StringTranslation\TranslationManager;
use Symfony\Component\DependencyInjection\ContainerInterface;
class EntityCloneExtrasPermissions implements ContainerInjectionInterface {
protected $entityTypeManager;
protected $translationManager;
protected $moduleHandler;
public function __construct(EntityTypeManagerInterface $entity_manager, TranslationManager $string_translation, ModuleHandlerInterface $module_handler) {
$this->entityTypeManager = $entity_manager;
$this->translationManager = $string_translation;
$this->moduleHandler = $module_handler;
}
public static function create(ContainerInterface $container) {
return new static($container->get('entity_type.manager'), $container->get('string_translation'), $container->get('module_handler'));
}
public function permissions() {
$permissions = [];
$content_types = $this->entityTypeManager
->getStorage('node_type')
->loadMultiple();
foreach ($content_types as $key => $type) {
$permissions['clone ' . $key . ' node entities'] = $this->translationManager
->translate('Clone all <em>@label</em> node entities', [
'@label' => $type->label(),
]);
}
if ($this->moduleHandler
->moduleExists('media')) {
$media_types = $this->entityTypeManager
->getStorage('media_type')
->loadMultiple();
foreach ($media_types as $key => $type) {
$permissions['clone ' . $key . ' media entities'] = $this->translationManager
->translate('Clone all <em>@label</em> media entities', [
'@label' => $type->label(),
]);
}
}
return $permissions;
}
}
Classes