public function actionImportUsers() { set_time_limit(0); $count = 0; $users = BUser::model()->findAll(); foreach ($users as $user) { $group = BUserGroup::model()->find('USER_ID=' . $user->ID); if ($group && $group->GROUP_ID != 0) { $username = ''; $user->LOGIN = $this->sql_valid($user->LOGIN); $model = UserGroupsUser::model()->find("username='******'"); if ($model) { if ($user->EXTERNAL_AUTH_ID && $user->XML_ID) { $username = $user->LOGIN . '_' . $user->EXTERNAL_AUTH_ID; $username = substr($username, 0, 110); $model = new UserGroupsUser('import'); $model->username = $username; } elseif ($model->external_auth_id && $model->xml_id) { $model->username = $model->username . '_' . $model->xml_id; $model->update(); $model = new UserGroupsUser('import'); } } if (!$model) { $model = new UserGroupsUser('import'); } $group_id = 2; if ($group->GROUP_ID == 1) { $group_id = 5; } if ($group->GROUP_ID == 4) { $group_id = 3; } if ($user->LOGIN == 'admin') { $group_id = 1; } if ($user->EXTERNAL_AUTH_ID && $user->XML_ID) { $user->PASSWORD = ''; } $model->attributes = array('id' => $user->ID, 'group_id' => $group_id, 'username' => $username ? $username : $user->LOGIN, 'password' => $user->PASSWORD, 'email' => trim($user->EMAIL) ? trim($user->EMAIL) : null, 'name' => $user->NAME, 'second_name' => $user->SECOND_NAME, 'last_name' => $user->LAST_NAME, 'home' => '', 'status' => 4, 'creation_date' => $user->DATE_REGISTER, 'activation_code' => null, 'activation_time' => $user->CHECKWORD_TIME, 'last_login' => $user->LAST_LOGIN, 'params' => array_keys($model->ParamsFields), 'xml_id' => $user->XML_ID, 'external_auth_id' => $user->EXTERNAL_AUTH_ID, 'is_bitrix_pass' => 1); $model->id = $user->ID; if ($model->save()) { $count++; if (!$model->relProfile) { $profile = new Profile(); $profile->ug_id = $model->id; $profile->birthday = $user->PERSONAL_BIRTHDAY; $profile->site = $user->PERSONAL_WWW; $profile->save(); } $model->creation_date = $user->DATE_REGISTER; $model->status = 4; $model->update(); } else { echo "Пользователь " . $user->ID . "(" . $user->LOGIN . ")" . " не добавлен из-за : \n"; print_r($model->errors); } } } echo "Добавлено {$count} пользователей."; }
/** * Returns the static model of the specified AR class. * Please note that you should have this exact method in all your CActiveRecord descendants! * @param string $className active record class name. * @return BPost the static model class */ public static function model($className = __CLASS__) { return parent::model($className); }