Las características son bastante útiles para cosas como esta. Sin embargo, si necesita crear roles y agregar permisos mediante programación, no tiene que buscar la base de datos por su cuenta.
Cuando crea un nuevo rol de usuario con user_role_save()
, actualizará el objeto que pasó con el nuevo ID de rol de usuario que se asignó. Puede ver un ejemplo de esto en la standard_install()
función en el perfil de instalación estándar.
$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 ejemplo muestra que puede crear una nueva función de usuario y luego acceder a su rid
propiedad, que fue completada por user_role_save()
. También muestra cómo agregar permisos a ese rol con user_role_grant_permissions()
. En este caso, está otorgando al rol de 'administrador' todos los permisos disponibles.
Si necesita obtener la identificación de un rol de usuario creado por otra persona, puede usarlo user_role_load_by_name()
para obtener el objeto para ese rol de usuario. Entonces simplemente agarras la identificación con $role->rid
.