Podczas logowania chcę sprawdzić źródło danych innej firmy (tabela w db) dla użytkownika, a jeśli zostanie znalezione, chcę dodać rolę do tego użytkownika.
Nie chcę odgadnąć roli, chcę ją uzyskać z nazwy roli.
Jest to dość proste w przypadku user_roles () i array_search () . Poniżej znajduje się funkcja, która zwróci identyfikator roli, jeśli istnieje rola pasująca do nazwy, w przeciwnym razie FALSE.
function get_role_by_name($name) {
$roles = user_roles();
return array_search($name, $roles);
}
// Sample usage
$rid = get_role_by_name('administrator');
Jedna wkładka to:
$rid = array_search('administrator', user_roles());
Znając nazwę maszyny roli, wystarczy użyć
user_role_load_by_name()
.Jeśli rola może nie istnieć ...
źródło
Najlepszym sposobem na identyfikację roli i jej identyfikatora jest SQL. Uruchom to zapytanie w edytorze SQL.
Otrzymasz listę ról, w tym identyfikator i wagę.
źródło