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


30

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

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...
}

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
  }

-4

Você pode usar este código:

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.