summaryrefslogtreecommitdiffstats
path: root/core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php')
-rw-r--r--core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php21
1 files changed, 18 insertions, 3 deletions
diff --git a/core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php b/core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php
index 7f9fa83..3dc764d 100644
--- a/core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php
+++ b/core/modules/content_moderation/src/Plugin/Action/ModerationOptOutUnpublish.php
@@ -6,6 +6,7 @@ use Drupal\Core\Access\AccessResult;
use Drupal\Core\Action\Plugin\Action\UnpublishAction;
use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Messenger\MessengerInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\content_moderation\ModerationInformationInterface;
@@ -33,6 +34,13 @@ class ModerationOptOutUnpublish extends UnpublishAction implements ContainerFact
protected $bundleInfo;
/**
+ * Messenger service.
+ *
+ * @var \Drupal\Core\Messenger\MessengerInterface
+ */
+ protected $messenger;
+
+ /**
* ModerationOptOutUnpublish constructor.
*
* @param array $configuration
@@ -47,11 +55,14 @@ class ModerationOptOutUnpublish extends UnpublishAction implements ContainerFact
* The moderation information service.
* @param \Drupal\Core\Entity\EntityTypeBundleInfoInterface $bundle_info
* Bundle info service.
+ * @param \Drupal\Core\Messenger\MessengerInterface $messenger
+ * Messenger service.
*/
- public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, ModerationInformationInterface $moderation_info, EntityTypeBundleInfoInterface $bundle_info) {
+ public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, ModerationInformationInterface $moderation_info, EntityTypeBundleInfoInterface $bundle_info, MessengerInterface $messenger) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager);
$this->moderationInfo = $moderation_info;
$this->bundleInfo = $bundle_info;
+ $this->messenger = $messenger;
}
/**
@@ -62,7 +73,8 @@ class ModerationOptOutUnpublish extends UnpublishAction implements ContainerFact
$configuration, $plugin_id, $plugin_definition,
$container->get('entity_type.manager'),
$container->get('content_moderation.moderation_information'),
- $container->get('entity_type.bundle.info')
+ $container->get('entity_type.bundle.info'),
+ $container->get('messenger')
);
}
@@ -74,7 +86,10 @@ class ModerationOptOutUnpublish extends UnpublishAction implements ContainerFact
if ($entity && $this->moderationInfo->isModeratedEntity($entity)) {
$bundle_info = $this->bundleInfo->getBundleInfo($entity->getEntityTypeId());
$bundle_label = $bundle_info[$entity->bundle()]['label'];
- drupal_set_message($this->t("@bundle @label were skipped as they are under moderation and may not be directly unpublished.", ['@bundle' => $bundle_label, '@label' => $entity->getEntityType()->getPluralLabel()]), 'warning');
+ $this->messenger->addWarning($this->t("@bundle @label were skipped as they are under moderation and may not be directly unpublished.", [
+ '@bundle' => $bundle_label,
+ '@label' => $entity->getEntityType()->getPluralLabel(),
+ ]));
$result = AccessResult::forbidden('Cannot directly unpublish moderated entities.');
return $return_as_object ? $result : $result->isAllowed();
}