L'e-mail est désormais un champ inclus dans le noyau, mais l'e-mail stock pour les utilisateurs semble être défini sur privé; seuls les utilisateurs disposant de privilèges d'administrateur ou l'utilisateur lui-même peuvent le voir.
Je voudrais permettre aux autres utilisateurs de voir ce champ de base, sans avoir à créer un autre champ de courrier électronique où quelqu'un doit copier les informations les uns des autres simplement pour qu'il soit visible.
Cela devrait être une pratique assez facile/courante, mais je ne trouve encore rien.
Comment autoriser les utilisateurs réguliers non administrateurs à consulter les e-mails des autres utilisateurs?
J'ai eu un cas d'utilisation similaire. Voici une autre solution: j'ai ajouté un nouveau champ de messagerie aux profils des utilisateurs, et dans un module personnalisé (je l'ai fait Drupal v8.1), utilisez hook_user_presave
Voir Drupal Api :
function MYMODULE_user_presave(User $user){ $user->set('field_profile_email', $user->getEmail()); }
Ensuite, vous pouvez utiliser ce nouveau champ dans les vues, par exemple, dans une liste de contacts de service, comme cela a été mentionné dans un commentaire à la question. Vous pouvez également utiliser Autorisations de champ pour améliorer encore cela.
Cela a l'inconvénient de créer un deuxième champ, mais la fonction évite d'avoir à le copier manuellement, et il est maintenant disponible partout.
Un itinéraire que vous pouvez emprunter consiste à accorder aux utilisateurs l'autorisation Afficher les informations utilisateur et à afficher ces informations sur la page de profil utilisateur.
Pour ce faire, remplacez ser.html.twig dans votre thème (copiez-le depuis core/modules/user/templates/user.html.twig dans le répertoire des modèles de votre thème) puis injectez l'e-mail dans le modèle via hook_preprocess_user()
= dans votre fichier mytheme.theme :
/**
* Implements hook_preprocess_user()
*/
function mytheme_preprocess_user(&$variables) {
$variables['mail'] = $variables['user']->getEmail();
}
Dans cet exemple, vous pourrez utiliser {{ mail }}
pour insérer la variable e-mail dans votre modèle de profil utilisateur.
Il existe une demande de fonctionnalité D8 Vore pour ajouter une autorisation de voir l'adresse e-mail des autres utilisateurs: Ajouter une nouvelle autorisation pour afficher le champ de messagerie de l'utilisateur [# 2799049]\| Drupal.org