Аватар пользователя Dima

Программное создание роли [Drupal 7]

Программно создать роль в друпал 7 очень просто. Создаем роль с именем "editor":

  1. $role = new stdClass();
  2. $role->name = 'editor';
  3. user_role_save($role);

Выдаем/изменяем права роли:

  1. $editor_role = user_role_load_by_name('editor');
  2. $editor_rid = $editor_role->rid;
  3. // Define our 'editor' role permissions
  4. $editor_permissions = array(
  5. 'administer blocks' => TRUE, // Grant permission
  6. 'access dashboard' => FALSE, // Revoke permission
  7. ..., // more permissions' name
  8. );
  9. // Grant permissions to our 'editor' role
  10. user_role_change_permissions($editor_rid, $editor_permissions);

Изменяем роли пользовате  uid == 1 добавляя недавно созданную роль  editor в роли пользователя:
  1. $account = user_load(1);
  2. $editor_role = user_role_load_by_name('editor');
  3. $account->roles = array_merge($account->roles, array( $editor_role->rid, $editor_role->name));
  4. user_save($account);

Оригинал: http://www.dibe.gr/blog/drupal-7-create-users-and-roles-programmatically