function csna_callback($provider) {

  global $user;
  $data = module_invoke($provider['module'], 'csna_provider_callback', $provider, $_REQUEST);

  // Forcing array format because of Sina weibo will return an Object.
  if (!is_array($data)) {
    $data = (array) $data;
  }

  if (isset($data['access_token'])) {
    $identity = $provider['provider_id'] . '_' . $data['uid'];
    $account = user_external_load($identity);

    if (!isset($account->uid)) {
      $name = $data['name'];
      $ac = user_load_by_name($name);
      if ($ac) {
        $separator = '_';
        $i = 0;
        do {
          $i++;
          $name = $data['name'] . $separator . $i;
        } while (user_load_by_name($name));
      }
      //User avatar
      if (isset($data['avatar_link'])) {
        $avatar_directory = file_default_scheme() . '://' . variable_get('user_picture_path', 'pictures');
        $avatar = system_retrieve_file($data['avatar_link'], $avatar_directory, TRUE, FILE_EXISTS_RENAME);
      }
      $edit = array(
        'name' => $name,
        'status' => 1,
        'picture' =>  isset($avatar->fid) ? $avatar->fid : '',
      );
      $account = user_save(NULL, $edit);
      user_set_authmaps($account, array('authname_csna' => $identity));
    }

    csna_execute_user_login($account);

    if (variable_get('csna_require_email', TRUE) && empty($account->mail)) {
      drupal_goto('csna/' . $account->uid . '/complete-register');
    }
  }
  drupal_goto('user');
}

查看代码的时候发现 '$separator = '_';' 变量的定义没有必要,会引起微小的性能损失。

CommentFileSizeAuthor
#2 unnecessary_variable-2599504-2.patch497 bytesedxxu

Comments

edxxu created an issue. See original summary.

edxxu’s picture

StatusFileSize
new497 bytes

Here's the patch, please review, thx.

edxxu’s picture

Status: Active » Needs review