Comment puis-je vérifier si un utilisateur a un certain rôle?
J'ai trouvé ça mais c'est pour Drupal 6.
Puisque vous avez déjà trouvé ce post , assurez-vous également de lire les commentaires. Cela explique clairement pourquoi il est recommandé de rechercher une autorisation plutôt que de rechercher un rôle. Lorsque vous utilisez des autorisations, vous pouvez attribuer cette autorisation à plusieurs rôles, ce qui rend votre système plus flexible. N'oubliez pas non plus que les rôles peuvent être renommés, ce qui endommagerait votre code.
Cela dit, si vous voulez vérifier un rôle, vous pouvez le faire:
// Load the currently logged in user.
global $user;
// Check if the user has the 'editor' role.
if (in_array('editor', $user->roles)) {
// do fancy stuff
}
Pour vérifier si l'utilisateur actuel a un seul ou plusieurs rôles, vous pouvez le faire comme suit:
la source
Mise à jour pour la version Drupal> = 7.36
Vous pouvez utiliser la fonction user_has_role de l'API Drupal à l' adresse https://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_has_role/7 .
Essayez cet exemple:
la source
Vous pouvez installer le module devel et faire dpm ($ user). Cela imprimera un tableau avec toutes les informations utilisateur, y compris le rôle de l'utilisateur.
Dans ce tableau, vous pouvez trouver la position de "rôles" dans le tableau et l'utiliser dans votre module pour trouver le rôle de l'utilisateur.
la source
Pour être sûr que le nom du rôle change, il est préférable de rechercher l'ID du rôle (débarrasser) qui peut être trouvé dans la table des rôles de la base de données.
Si vous voulez vérifier un rôle avec débarrasser 16, faites:
la source
Voici le code du commentaire mentionné dans la réponse acceptée comme étant la meilleure pratique.
la source
Vous pouvez vérifier le rôle d'un utilisateur avec print_r ($ user) et vous obtiendrez quelque chose comme ceci
la source
pour vérifier si un utilisateur a un certain rôle:
la source
la source
Les réponses ci-dessus ne fonctionnaient pas, pas sûr, j'ai trouvé ce post et le code devrait être `
// Vérifie si $ user a le rôle d'administrateur. if (in_array ('administrator', array_values ($ user-> roles)))) {// Faites quelque chose. }?> `
la source