Como saber se o usuário é visitante ou membro registrado?

30

Como posso determinar programaticamente se o usuário atual é anônimo ou autenticado?

Axel Briche
fonte

Respostas:

57

Para obter um código mais robusto e descritivo, você pode usar o User::isAnonymous()método útil , por exemplo,

if (\Drupal::currentUser()->isAnonymous()) {
  // Anonymous user...
}
Clive
fonte
2
Sempre que possível, use métodos como este: programe para a interface e não a implementação. Usar um IDE com conclusão de código é inestimável para o trabalho do Drupal 8.
mpdonadio
3
Para qualquer outra pessoa que se depara com isso, nota que \ Drupal :: currentUser () -> isAuthenticated () é o equivalente a D7 user_is_logged_in ()
Jaypan
Criei um módulo personalizado e não consigo fazer essa função funcionar. Preciso adicionar algo adicional no meu módulo? Agradeço antecipadamente.
SuperTony
6
  $current= \Drupal::currentUser();
  if (!$current->id()) {
    // is visitor
  }
  else {
    // is logged
  }
Axel Briche
fonte
-4

Você pode usar este código:

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}
mahdi alikhasi
fonte
2
O código do Drupal funciona para o Drupal 7, mas não no Drupal 8
Dev
1
Sim e use === para uma comparação estrita e coloque espaço antes e depois do seu resto para os padrões de codificação: /
klidifia