Example #1
0
 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} пользователей.";
 }
Example #2
0
 /**
  * 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);
 }