Я написал функцию по умолчанию для достижения этой цели:
function _load_permission_settings($role_index = null) {
// Blocks
$perms['administer blocks'] = array(0, 0, 0);
// Comments
$perms['administer comments'] = array(0, 1, 0);
$perms['access comments'] = array(1, 1, 1);
$perms['post comments'] = array(1, 1, 1);
$perms['skip comment approval'] = array(1, 1, 1);
$perms['edit own comments'] = array(1, 1, 1);
...
function _create_users() {
require_once DRUPAL_ROOT . '/' . variable_get('password_inc', 'includes/password.inc');
$roles = user_roles(true);
$users[] = array('an', array(3));
$users[] = array('ben', array(4, 6, 8));
...
function _set_roles_and_permissions() {
// Enable default permissions for system roles.
user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access content'));
user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, _load_permission_settings(0));
// Permissions to assign to the roles. (all Thema-related roles share the same permissions)
$perms_eind = _load_permission_settings(1);
$perms_red = _load_permission_settings(2);
$user_roles = _load_thema_user_role_names('');
foreach ($user_roles as $name) {
// Role1
$role = new stdClass;
$role->name = 'Role 1 - ' . $name;
user_role_save($role);
user_role_grant_permissions($role->rid, $perms_eind);
// Role2
$role = new stdClass;
$role->name = 'Role 2 - ' . $name;
user_role_save($role);
user_role_grant_permissions($role->rid, $perms_red);
}
}