¿Cómo consigo que el administrador marque automáticamente?
Sep 18 2020
Creé un módulo para marcar entidades automáticamente cuando se crea o actualiza.
Hay algunos errores en mi código porque solo funcionan los nodos.
Si un usuario "user1" crea un nodo, la bandera estará a su nombre. Quiero que la bandera se haga automáticamente en nombre del administrador del sitio.
¿Cómo consigo que el administrador marque automáticamente?
use Drupal\flag\FlaggingInterface;
use Drupal\Core\Entity\ContentEntityBase;
use Drupal\user\Entity\User;
use Drupal\commerce_store\Entity\Store;
use Drupal\commerce_product\Entity\Product;
use Drupal\group\Entity\Group;
use Drupal\node\Entity\Node;
use Drupal\comment\Entity\Comment;
/**
* Flag node.
*/
function admin_task_notify_node_update(Node $node) { $flag_id = 'moderate_node';
$flag_service = \Drupal::service('flag'); $flag = $flag_service->getFlagById($flag_id);
$flag_service->flag($flag, $node);
}
Respuestas
1 Clive Sep 18 2020 at 02:42
FlagServiceInterface::flagtoma un $accountargumento:
La cuenta del usuario que marca la entidad. Si no se proporciona, se utiliza el usuario actual.
Así por ejemplo:
$flag_id = 'moderate_node';
$flag_service = \Drupal::service('flag'); $flag = $flag_service->getFlagById($flag_id);
$account = \Drupal\user\Entity\User::load(1); $flag_service->flag($flag, $node, $account);