Программное изменение роли пользователя.

Тэги: 

Функция user_save() умеет изменять роли пользователей, достаточно передать ей нужные параметры.
Причем для изменения роли достаточно знать только её id (rid):

Загружаем объект нужного нам пользователя:
$user = user_load($uid);

Либо если нам нужен текущий пользователь, используем глобальную переменную:
global $user;

Для примера удалим одну роль и добавим другую:

  1. $roles = $user->roles;
  2.  
  3. unset($roles[5]);
  4. $roles[6] = "";
  5.  
  6. user_save($user, array('roles' => $roles));