在模組中建立角色

建立一個角色editor

 
$role = new stdClass();
//指定角色名稱
$role->name = 'editor';

// 如設定角色順序,則設定weight屬性
// $role->weight = 10;

//儲存角色
user_role_save($role);

設定角色權限

 
// 取出角色
$editor_role = user_role_load_by_name('editor'); 
$editor_rid = $editor_role->rid;
// 設定權限資料
$editor_permissions = array(
  'administer blocks' => TRUE, // Grant permission
  'access dashboard' => FALSE, // Revoke permission
  ..., // 其他權限...
);
// 將權限設定值指定給剛剛取出的角色
user_role_change_permissions($editor_rid, $editor_permissions);

建立使用者並指定為該角色

 
// 指定新使用者的角色
$new_user_roles = array(
  DRUPAL_AUTHENTICATED_RID => 'authenticated user',
  $editor_rid => 'editor',
);
// 建立新使用者
$new_user = new stdClass();
$new_user->name = 'john doe'; //設定使用者名稱
$new_user->pass = 'mypassword'; // 設定密碼
$new_user->mail = 'john@doe.com'; //設定使用者電子郵件
$new_user->roles = $new_user_roles; //指定角色
$new_user->status = 1; // 設定使用者狀態,如不設定,則預設為停用
$new_user->is_new = TRUE; // 非必要,因為未指定uid
user_save($new_user);