Respostas:
Isso é bastante simples com user_roles () e array_search () . Abaixo está uma função que retornará o ID da função se houver uma função correspondente ao nome e FALSE caso contrário.
function get_role_by_name($name) {
$roles = user_roles();
return array_search($name, $roles);
}
// Sample usage
$rid = get_role_by_name('administrator');
Um revestimento seria:
$rid = array_search('administrator', user_roles());
Conhecendo o nome da máquina da função, é suficiente usá-la user_role_load_by_name()
.
if ($role = user_role_load_by_name('Role Name')) {
// The role ID is in $role->rid.
}
Se a função não existir ...
$role = user_role_load_by_name('Role Name');
$role_id = $role ? $role->rid : NULL;
A melhor maneira de identificar a função e seu ID é do SQL. Execute esta consulta no seu editor SQL.
select * from roles;
E você obterá a lista de funções, incluindo o ID e o peso.