public function actionIndex()
 {
     $user = Yii::app()->user->data();
     $model = new ChangePhoneForm();
     $usersettings = $user->twofactor_settings;
     if (!$usersettings) {
         $usersettings = new UserTwoFactorSettings();
         $usersettings->id_user = $user->id;
         $usersettings->googleauth_secret = $ga->createSecret();
         $usersettings->googleauth_url = $ga->getQRCodeGoogleUrl('MercadoBTX', $usersettings->googleauth_secret);
         $usersettings->save();
     }
     $smsform = new SmsAuthForm();
     $request = Yii::app()->request;
     $formData = $request->getPost(get_class($model), false);
     $smsFormData = $request->getPost(get_class($smsform), false);
     if ($formData) {
         $authok = false;
         $model->attributes = $formData;
         if ($model->validate(array('phone'))) {
             if ($smsFormData) {
                 $smsform->attributes = $smsFormData;
                 $authcode = $smsform->twofactorauthcode;
                 if (strcasecmp($smsform->twofactorauthcode, $usersettings->smscode) == 0) {
                     $usersettings->regenerateSmsCode();
                     // prevent it from being used again
                     $authok = true;
                     $usersettings->smsphone = $model->phone;
                     if (!$usersettings->save()) {
                         Yii::log($this->dump_to_string($newdetail->errors), 'error');
                         Yii::app()->user->setFlash('error', Yii::t('translation', 'Save failed'));
                     } else {
                         Yii::app()->user->setFlash('success', Yii::t('translation', 'Phone number changed'));
                     }
                 } else {
                     Yii::app()->user->setFlash('error', Yii::t('translation', 'Invalid code'));
                 }
             } else {
                 Yii::app()->user->setFlash('error', Yii::t('translation', 'Validation code not recieved'));
             }
         }
     }
     $this->render('index', array('user' => $user, 'model' => $model, 'smsmodel' => $smsform));
 }
Пример #2
0
 public function actionIndex()
 {
     // $this->leftmenu = 'account';
     $user = Yii::app()->user->data();
     $ga = new GoogleAuthenticator();
     $usersettings = $user->twofactor_settings;
     if (!$usersettings) {
         $usersettings = new UserTwoFactorSettings();
         $usersettings->id_user = $user->id;
         $usersettings->googleauth_secret = $ga->createSecret();
         $usersettings->googleauth_url = $ga->getQRCodeGoogleUrl('MercadoBTX', $usersettings->googleauth_secret);
         $usersettings->save();
     }
     $model = new SecurityForm();
     $gaform = new GoogleAuthForm();
     $smsform = new SmsAuthForm();
     $request = Yii::app()->request;
     $formData = $request->getPost(get_class($model), false);
     $gaFormData = $request->getPost(get_class($gaform), false);
     $smsFormData = $request->getPost(get_class($smsform), false);
     if ($formData) {
         $authok = false;
         if ($usersettings->deliveras == UserTwoFactorSettings::GOOGLE_AUTH) {
             if ($gaFormData) {
                 $gaform->attributes = $gaFormData;
                 $authcode = $gaform->twofactorauthcode;
                 if ($ga->verifyCode($usersettings->googleauth_secret, $authcode)) {
                     $authok = true;
                 }
             }
         } elseif ($usersettings->deliveras == UserTwoFactorSettings::SMS) {
             if ($smsFormData) {
                 $smsform->attributes = $smsFormData;
                 $authcode = $smsform->twofactorauthcode;
                 if (strcasecmp($smsform->twofactorauthcode, $usersettings->smscode) == 0) {
                     $usersettings->regenerateSmsCode();
                     // prevent it from being used again
                     $authok = true;
                 }
             }
         } elseif ($usersettings->deliveras == UserTwoFactorSettings::NONE) {
             $authok = true;
         } else {
             Yii::app()->user->setFlash('error', Yii::t('translation', 'Invalid setting'));
         }
         if (!$authok) {
             Yii::app()->user->setFlash('error', Yii::t('translation', 'Invalid Auth Code! '));
         } else {
             $model->attributes = $formData;
             if ($model->hasErrors()) {
                 Yii::app()->user->setFlash('error', Yii::t('translation', 'Save failed'));
             } else {
                 $usersettings->smsphone = $model->smsphone;
                 $usersettings->deliveras = $model->deliveras;
                 if (!$usersettings->save()) {
                     Yii::log(var_dump($usersettings->getErrors()), 'error');
                     Yii::app()->user->setFlash('error', Yii::t('translation', 'Save failed! '));
                 } else {
                     Yii::app()->user->setFlash('success', Yii::t('translation', 'Information updated'));
                 }
             }
         }
     }
     $model->deliveras = $usersettings->deliveras;
     $model->smsphone = $usersettings->smsphone;
     $this->render('index', array('model' => $model, 'deliveras' => $model->deliveras, 'qrCodeUrl' => $usersettings->googleauth_url));
 }
Пример #3
0
 public function actionIndex()
 {
     $user = Yii::app()->user->data();
     if (!$user->isVerified()) {
         $this->render('notverified');
         return;
     }
     // verified only beyond this point
     // $transactions = Transaction::model ()->findAllByAttributes(array('id_user' => $user->id, 'type' => 1));
     $balance = count($user->balance) > 0 ? $user->balance : new Balance();
     $model_btc = new WithdrawBtcForm();
     $model_bank = new WithdrawBankForm();
     $model_intermediate = new WithdrawBankIntermediateForm();
     $model_paypal = new WithdrawPaypalForm();
     $user_country_code = '';
     if ($user->addresses && count($user->addresses) > 0) {
         $current_address = $user->addresses[count($user->addresses) - 1];
         $user_country_code = $current_address->countrycode;
     }
     $ga = new GoogleAuthenticator();
     $usersettings = $user->twofactor_settings;
     if (!$usersettings) {
         $usersettings = new UserTwoFactorSettings();
         $usersettings->id_user = $user->id;
         $usersettings->googleauth_secret = $ga->createSecret();
         $usersettings->googleauth_url = $ga->getQRCodeGoogleUrl('MercadoBTX', $usersettings->googleauth_secret);
         $usersettings->save();
     }
     $deliveras = $usersettings->deliveras;
     $request = Yii::app()->request;
     $btc_submit = array_key_exists('btc_submit', $_POST);
     $wire_submit = array_key_exists('wire_submit', $_POST);
     $paypal_submit = array_key_exists('paypal_submit', $_POST);
     print_r($wire_submit);
     $tab = 'opt_btc';
     if ($wire_submit) {
         $tab = 'opt_wire';
     } elseif ($paypal_submit) {
         $tab = 'opt_paypal';
     }
     $btcFormData = $request->getPost(get_class($model_btc), false);
     $bankFormData = $request->getPost(get_class($model_bank), false);
     $intermediateFormData = $request->getPost(get_class($model_intermediate), false);
     $paypalFormData = $request->getPost(get_class($model_paypal), false);
     $intermediate_ok = FALSE;
     $primary_ok = FALSE;
     if ($btcFormData || $bankFormData || $paypalFormData) {
         if (!$this->checkAuthCode($request, $usersettings, $ga)) {
             Yii::app()->user->setFlash('error', Yii::t('translation', 'Invalid auth code'));
         } else {
             if ($btc_submit && $btcFormData) {
                 $model_btc->attributes = $btcFormData;
                 if ($model_btc->validate(array('transfer_amount', 'address'))) {
                     $btc_trans = new Transaction();
                     $btc_trans->amount = $model_btc->transfer_amount;
                     $btc_trans->currency = 'BTC';
                     $btc_trans->wallet_address = $model_btc->address;
                     $btc_trans->id_user = $user->id;
                     $btc_trans->type = Transaction::TYPE_WITHDRAW_BTC;
                     $btc_trans->status = Transaction::STATUS_PENDING;
                     if (!$btc_trans->save()) {
                         $model_btc->addError('dummy', 'Save failed');
                         Yii::log('Unable to submit transaction, save failed');
                     }
                 }
             }
             if ($wire_submit && $bankFormData) {
                 $model_bank->attributes = $bankFormData;
                 if ($intermediateFormData) {
                     $model_intermediate->attributes = $intermediateFormData;
                     if ($intermediateFormData && $model_intermediate->validate(array('account_number', 'account_name', 'bank_name', 'swift_number', 'comments', 'city', 'postcode', 'countrycode'))) {
                         $intermediate_ok = TRUE;
                     }
                 }
             }
             if ($model_bank->validate(array('transfer_amount', 'account_number', 'account_name', 'bank_name', 'swift_number', 'comments', 'city', 'postcode', 'countrycode'))) {
                 $primary_ok = TRUE;
             }
             if ($primary_ok == TRUE) {
                 $bank_trans = new Transaction();
                 $bank_trans->amount = $model_bank->transfer_amount;
                 $bank_trans->currency = '';
                 $bank_trans->wallet_address = $model_bank->account_number;
                 $bank_trans->id_user = $user->id;
                 $bank_trans->type = Transaction::TYPE_WITHDRAW_FIAT;
                 $bank_trans->status = Transaction::STATUS_PENDING;
                 $bank_trans->descr = var_dump($model_bank);
                 $bank_info = new TransactionBankInfo();
                 $bank_info->account_number = $model_bank->account_number;
                 $bank_info->account_name = $model_bank->account_name;
                 $bank_info->bank_name = $model_bank->bank_name;
                 $bank_info->swift_number = $model_bank->swift_number;
                 $bank_info->comments = $model_bank->comments;
                 $bank_info->line1 = $model_bank->line1;
                 $bank_info->line2 = $model_bank->line2;
                 $bank_info->city = $model_bank->city;
                 $bank_info->postcode = $model_bank->postcode;
                 $bank_info->countrycode = $model_bank->countrycode;
                 if (!$bank_trans->save()) {
                     $model_bank->addError('dummy', 'Save failed');
                     Yii::log('Unable to submit transaction, save failed');
                 }
                 $bank_info->id_trans = $bank_trans->id_trans;
                 if (!$bank_info->save()) {
                     $model_bank->addError('dummy', 'Save failed');
                     Yii::log('Unable to submit transaction, save failed');
                     $bank_trans->delete();
                 }
                 if ($intermediate_ok == TRUE) {
                     $inter_info = new TransactionBankInfo();
                     $inter_info->account_number = $model_intermediate->account_number;
                     $inter_info->account_name = $model_intermediate->account_name;
                     $inter_info->bank_name = $model_intermediate->bank_name;
                     $inter_info->swift_number = $model_intermediate->swift_number;
                     $inter_info->comments = $model_intermediate->comments;
                     $inter_info->line1 = $model_intermediate->line1;
                     $inter_info->line2 = $model_intermediate->line2;
                     $inter_info->city = $model_intermediate->city;
                     $inter_info->postcode = $model_intermediate->postcode;
                     $inter_info->countrycode = $model_intermediate->countrycode;
                     $inter_info->intermediate = 1;
                     $inter_info->id_trans = $bank_trans->id_trans;
                     if (!$inter_info->save()) {
                         $model_intermediate->addError('dummy', 'Save failed');
                         Yii::log('Unable to submit transaction, save failed');
                         $bank_trans->delete();
                         $bank_info->delete();
                     }
                 }
             }
             if ($paypal_submit && $paypalFormData) {
                 $model_paypal->attributes = $paypalFormData;
                 if ($model_paypal->validate(array('transfer_amount', 'email'))) {
                     $paypal_trans = new Transaction();
                     $paypal_trans->amount = $model_bank->transfer_amount;
                     $paypal_trans->wallet_address = $model_bank->email;
                     $paypal_trans->currency = 'MXN';
                     $paypal_trans->id_user = $user->id;
                     $paypal_trans->type = Transaction::TYPE_WITHDRAW_FIAT;
                     $paypal_trans->status = Transaction::STATUS_PENDING;
                     $paypal_trans->descr = $model_paypal->notes;
                     if (!$paypal_trans->save()) {
                         $model_paypal->addError('dummy', 'Save failed');
                         Yii::log('Unable to submit transaction, save failed');
                     }
                 }
             }
         }
     }
     $this->render('index', compact('balance', 'user', 'tab', 'model_btc', 'model_bank', 'model_paypal', 'model_intermediate', 'user_country_code', 'deliveras'));
 }