Comment savoir si l'utilisateur est visiteur ou membre connecté?

30

Comment puis-je déterminer par programme si l'utilisateur actuel est anonyme ou authentifié?

Axel Briche
la source

Réponses:

57

Pour un code plus robuste et descriptif, vous pouvez utiliser la User::isAnonymous()méthode pratique , par exemple

if (\Drupal::currentUser()->isAnonymous()) {
  // Anonymous user...
}
Clive
la source
2
Dans la mesure du possible, utilisez des méthodes comme celle-ci: programmez l'interface et non l'implémentation. L'utilisation d'un IDE avec complétion de code est inestimable pour le travail de Drupal 8.
mpdonadio
3
Pour tous ceux qui rencontrent cela, notez que \ Drupal :: currentUser () -> isAuthenticated () est l'équivalent de D7 user_is_logged_in ()
Jaypan
J'ai créé un module personnalisé et je n'arrive pas à faire fonctionner cette fonction. Y a-t-il quelque chose que je dois ajouter dans mon module? Merci d'avance.
SuperTony
6
  $current= \Drupal::currentUser();
  if (!$current->id()) {
    // is visitor
  }
  else {
    // is logged
  }
Axel Briche
la source
-4

Vous pouvez utiliser ce code ::

global $user;
if ($user->uid == 0) {
  //user is not logged in
}else{
  //user is logged in
}
mahdi alikhasi
la source
2
Le code Drupal fonctionne pour Drupal 7, mais pas dans Drupal 8
Dev
1
Ouais et utilisez === pour une comparaison stricte et mettez de l'espace avant et après votre autre pour les normes de codage: /
klidifia