web-dev-qa-db-fra.com

Comment trouver l'ID de rôle à partir du nom de rôle?

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.

17
chim

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());
20
Lauri

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;
32
chim