¿Cómo saber si el usuario es visitante o miembro registrado?

30

¿Cómo puedo determinar programáticamente si el usuario actual es anónimo o está autenticado?

Axel Briche
fuente

Respuestas:

57

En aras de un código más robusto y descriptivo, puede utilizar el User::isAnonymous()método práctico , por ejemplo

if (\Drupal::currentUser()->isAnonymous()) {
  // Anonymous user...
}
Clive
fuente
2
Siempre que sea posible, utilice métodos como este: programe la interfaz, no la implementación. Usar un IDE con finalización de código es invaluable para el trabajo de Drupal 8.
mpdonadio
3
Para cualquier otra persona que se encuentre con esto, tenga en cuenta que \ Drupal :: currentUser () -> isAuthenticated () es el equivalente de D7 user_is_logged_in ()
Jaypan
Creé un módulo personalizado y no puedo hacer que esta función funcione. ¿Hay algo adicional que necesito agregar en mi módulo? Gracias de antemano.
SuperTony
6
  $current= \Drupal::currentUser();
  if (!$current->id()) {
    // is visitor
  }
  else {
    // is logged
  }
Axel Briche
fuente
-4

U puede usar este código ::

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}
Mahdi Alikhasi
fuente
2
El código de Drupal funciona para Drupal 7, pero no en Drupal 8
Dev
1
Sí, y use === para una comparación estricta y ponga espacio antes y después de su otro para los estándares de codificación: /
klidifia