namespace Drupal\node\Plugin\Action;
-use Drupal\Core\Action\ActionBase;
-use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\Field\FieldUpdateActionBase;
+use Drupal\node\NodeInterface;
/**
* Makes a node sticky.
* type = "node"
* )
*/
-class StickyNode extends ActionBase {
+class StickyNode extends FieldUpdateActionBase {
/**
* {@inheritdoc}
*/
- public function execute($entity = NULL) {
- $entity->setSticky(TRUE)->save();
- }
-
- /**
- * {@inheritdoc}
- */
- public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
- /** @var \Drupal\node\NodeInterface $object */
- $access = $object->access('update', $account, TRUE)
- ->andif($object->sticky->access('edit', $account, TRUE));
- return $return_as_object ? $access : $access->isAllowed();
+ protected function getFieldsToUpdate() {
+ return ['sticky' => NodeInterface::STICKY];
}
}