it-swarm-eu.dev

Jak najdu ID role z názvu role?

Při přihlášení chci zkontrolovat uživatele zdroje dat třetí strany (tabulka v db) a pokud je nalezen, chci k němu přidat roli.

Nechci hádat, jak se role zbavit, chci ji získat z názvu role.

17
chim

To je docela jednoduché s ser_roles () a array_search () . Níže je funkce, která vrátí ID role, pokud existuje role odpovídající názvu a FALSE jinak.

function get_role_by_name($name) {
  $roles = user_roles();
  return array_search($name, $roles);
}

// Sample usage
$rid = get_role_by_name('administrator');

Jedna vložka by byla:

$rid = array_search('administrator', user_roles());
20
Lauri

Znát název počítače role, stačí použít user_role_load_by_name() .

if ($role = user_role_load_by_name('Role Name')) {
  // The role ID is in $role->rid.
}

Pokud role nemusí existovat ...

$role = user_role_load_by_name('Role Name');

$role_id = $role ? $role->rid : NULL;
32
chim