You are here

function user_user_import_after_save_role in User Import 6.4

Same name and namespace in other branches
  1. 8 supported/user.inc \user_user_import_after_save_role()
  2. 5 supported/user.inc \user_user_import_after_save_role()
  3. 6.2 supported/user.inc \user_user_import_after_save_role()
  4. 7.3 supported/user.inc \user_user_import_after_save_role()
  5. 7 supported/user.inc \user_user_import_after_save_role()
  6. 7.2 supported/user.inc \user_user_import_after_save_role()
1 call to user_user_import_after_save_role()
user_user_import_after_save in supported/user.inc
Implementation of hook_user_import_after_save().

File

supported/user.inc, line 297

Code

function user_user_import_after_save_role($account, $new_roles_allowed, $account_roles, $roles) {
  $existing_roles = user_roles();

  // if roles were specified, add to existing roles
  $assign_roles = array();
  if (is_array($roles) && !empty($roles)) {
    foreach ($roles as $role) {
      if (!empty($role)) {
        $key = array_search($role, $existing_roles);
        if (!empty($new_roles_allowed) && empty($key)) {
          db_query("INSERT INTO {role} (name) VALUES ('%s')", $role);
          $key = db_result(db_query("SELECT rid FROM {role} WHERE name = '%s' LIMIT 1", $role));
          $existing_roles[$key] = $role;
        }
        $assign_roles[$key] = $role;
      }
    }
    $need_update = FALSE;
    foreach ($assign_roles as $key => $role) {
      if (!isset($account_roles[$key])) {
        $need_update = TRUE;
        $account_roles[$key] = $role;
      }
    }
    if ($need_update) {
      user_save($account, array(
        'roles' => $account_roles,
      ));
    }
  }
  return;
}