NodeUserHooks.php
Namespace
Drupal\node\HookFile
-
core/
modules/ node/ src/ Hook/ NodeUserHooks.php
View source
<?php
declare (strict_types=1);
namespace Drupal\node\Hook;
use Drupal\Core\Entity\EntityTypeManagerInterface ;
use Drupal\Core\Hook\Attribute\Hook ;
use Drupal\node\NodeBulkUpdate ;
use Drupal\user\UserInterface ;
/**
* Hook implementations for the node module.
*/
class NodeUserHooks {
/**
* NodeHooks constructor.
*/
public function __construct(protected EntityTypeManagerInterface $entityTypeManager, protected NodeBulkUpdate $nodeBulkUpdate) {
}
/**
* Implements hook_user_cancel().
*
* Unpublish nodes (current revisions).
*/
public function userCancelBlockUnpublish($edit, UserInterface $account, $method) : void {
if ($method === 'user_cancel_block_unpublish') {
$nids = $this->entityTypeManager
->getStorage ('node')
->getQuery ()
->accessCheck (FALSE)
->condition ('uid', $account->id ())
->execute ();
$this->nodeBulkUpdate
->process ($nids, [
'status' => 0,
], NULL, TRUE);
}
}
/**
* Implements hook_user_cancel().
*
* Anonymize all of the nodes for this old account.
*/
public function userCancelReassign($edit, UserInterface $account, $method) : void {
if ($method === 'user_cancel_reassign') {
$query = $this->entityTypeManager
->getStorage ('node')
->getQuery ()
->allRevisions ()
->accessCheck (FALSE)
->condition ('uid', $account->id ());
$vids = array_keys ($query->execute ());
$this->nodeBulkUpdate
->process ($vids, [
'uid' => 0,
'revision_uid' => 0,
], NULL, TRUE, TRUE);
}
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
NodeUserHooks | Hook implementations for the node module. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.