Lors de la connexion, je veux vérifier une source de données tierce (table dans la base de données) pour un utilisateur, et s'il est trouvé, je veux ajouter un rôle à cet utilisateur.
Je ne veux pas deviner la suppression du rôle, je veux l'obtenir à partir du nom du rôle.
C'est assez simple avec ser_roles () et array_search () . Vous trouverez ci-dessous une fonction qui renverra l'ID de rôle s'il existe un rôle correspondant au nom et FALSE sinon.
function get_role_by_name($name) {
$roles = user_roles();
return array_search($name, $roles);
}
// Sample usage
$rid = get_role_by_name('administrator');
Un paquebot serait:
$rid = array_search('administrator', user_roles());
Connaissant le nom de machine du rôle, il suffit d'utiliser user_role_load_by_name()
.
if ($role = user_role_load_by_name('Role Name')) {
// The role ID is in $role->rid.
}
Si le rôle n'existe peut-être pas ...
$role = user_role_load_by_name('Role Name');
$role_id = $role ? $role->rid : NULL;