Je souhaite obtenir l'ID utilisateur et le rôle avant que l'utilisateur ne se connecte. Si j'ai l'e-mail ou le nom d'utilisateur, quelle fonction puis-je utiliser avec D8 pour obtenir l'ID utilisateur?
Vous pouvez charger l'utilisateur avec loadByProperties()
:
$users = \Drupal::entityTypeManager()->getStorage('user')
->loadByProperties(['mail' => $mail]);
$user = reset($users);
if ($user) {
$uid = $user->id();
$rids = $user->getRoles();
}