O recurso é bastante útil para coisas como esta. No entanto, se você precisar criar funções e adicionar permissões programaticamente, não precisará pesquisar o banco de dados por conta própria.
Quando você cria uma nova função de usuário user_role_save()
, ele atualiza o objeto que você transmitiu com o novo ID de função de usuário atribuído. Você pode ver um exemplo disso na standard_install()
função no perfil de instalação padrão.
$admin_role = new stdClass();
$admin_role->name = 'administrator';
...
user_role_save($admin_role);
user_role_grant_permissions($admin_role->rid, array_keys(module_invoke_all('permission')));
Este exemplo mostra que você pode criar uma nova função de usuário e acessar sua rid
propriedade, que foi preenchida por user_role_save()
. Também mostra como adicionar permissões a essa função user_role_grant_permissions()
. Nesse caso, está concedendo à função 'administrador' todas as permissões disponíveis.
Se você precisar obter o ID de uma função de usuário criada por outra pessoa, poderá usar user_role_load_by_name()
para obter o objeto para essa função de usuário. Então você apenas pega o id com $role->rid
.