Como um módulo deve alterar o valor global $user
, executar seu próprio código e restaurar o valor original $user
sem fazer com que o usuário atual seja desconectado se ocorrer um erro?
Existe um problema antigo em aberto sobre isso, que adiciona uma função que pode lidar adequadamente com isso, mesmo quando chamada várias vezes. Veja drupal.org/node/287292 . Revise e teste o patch lá.
—
Berdir
Houve uma criação da documentação da comunidade que tem a solução para representar outro usuário para Drupal 6, Drupal 7 e Drupal 8 em drupal.org: Representando com segurança outro usuário .
—
IStryker