signup() public méthode

Signs user up.
public signup ( ) : User | null
Résultat skeeks\cms\models\User | null the saved model or null if saving fails
Exemple #1
0
 /**
  * Процесс отправки формы
  * @return array
  */
 public function actionShopPersonTypeSubmit()
 {
     $rr = new RequestResponse();
     try {
         if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
             if (\Yii::$app->request->post('shop_person_type_id')) {
                 $shop_person_type_id = \Yii::$app->request->post('shop_person_type_id');
                 $shop_buyer_id = \Yii::$app->request->post('shop_buyer_id');
                 /**
                  * @var $shopPersonType ShopPersonType
                  */
                 $modelBuyer = ShopBuyer::findOne($shop_buyer_id);
                 $shopPersonType = ShopPersonType::find()->active()->andWhere(['id' => $shop_person_type_id])->one();
                 if (!$shopPersonType) {
                     throw new Exception(\skeeks\cms\shop\Module::t('app', 'This payer is disabled or deleted. Refresh the page.'));
                 }
                 if (!$modelBuyer) {
                     $modelBuyer = $shopPersonType->createModelShopBuyer();
                 }
                 $validateModel = $modelBuyer->relatedPropertiesModel;
                 if ($validateModel->load(\Yii::$app->request->post()) && $validateModel->validate()) {
                     $modelBuyerName = [];
                     //Проверка свойств
                     foreach ($validateModel->attributeValues() as $code => $value) {
                         /**
                          * @var $property ShopPersonTypeProperty
                          */
                         $property = $validateModel->getRelatedProperty($code);
                         if ($property->is_buyer_name == Cms::BOOL_Y) {
                             $modelBuyerName[] = $value;
                         }
                         if ($property->is_user_email == Cms::BOOL_Y) {
                             $userEmail = $value;
                         }
                         if ($property->is_user_name == Cms::BOOL_Y) {
                             $userName = $value;
                         }
                         if ($property->is_user_username == Cms::BOOL_Y) {
                             $userUsername = $value;
                         }
                         if ($property->is_user_phone == Cms::BOOL_Y) {
                             $userPhone = $value;
                         }
                     }
                     //Нужно создать польозвателя
                     if (\Yii::$app->user->isGuest) {
                         if (!$userEmail) {
                             throw new Exception(\skeeks\cms\shop\Module::t('app', 'Unknown email address user'));
                         }
                         $newUser = new SignupForm();
                         $newUser->scenario = SignupForm::SCENARION_ONLYEMAIL;
                         $newUser->email = $userEmail;
                         if (!($user = $newUser->signup())) {
                             throw new Exception(\skeeks\cms\shop\Module::t('app', 'Do not create a user profile.'));
                         }
                         //Авторизация пользователя
                         \Yii::$app->user->login($user, 0);
                     }
                     $modelBuyer->name = $modelBuyerName ? implode(", ", $modelBuyerName) : $shopPersonType->name . " от (" . \Yii::$app->formatter->asDate(time(), 'medium') . ")";
                     $modelBuyer->cms_user_id = \Yii::$app->user->identity->id;
                     $modelBuyer->shop_person_type_id = $shopPersonType->id;
                     if (!$modelBuyer->save()) {
                         throw new Exception(\skeeks\cms\shop\Module::t('app', 'The data for the buyer are not saved.'));
                     }
                     $validateModel->save();
                     \Yii::$app->shop->shopFuser->buyer_id = $modelBuyer->id;
                     \Yii::$app->shop->shopFuser->person_type_id = $modelBuyer->shopPersonType->id;
                     \Yii::$app->shop->shopFuser->save();
                     $rr->success = true;
                     $rr->message = \skeeks\cms\shop\Module::t('app', 'Successfully sent');
                 } else {
                     throw new Exception(\skeeks\cms\shop\Module::t('app', 'Check the correctness of filling the form fields'));
                 }
             }
         }
     } catch (\Exception $e) {
         $rr->success = false;
         $rr->message = $e->getMessage();
     }
     return (array) $rr;
 }
Exemple #2
0
 /**
  * @return null|\skeeks\cms\models\User
  * @throws Exception
  */
 protected function _createCmsUser()
 {
     $newUser = new SignupForm();
     $newUser->scenario = SignupForm::SCENARION_ONLYEMAIL;
     $newUser->email = $this->email;
     if (!($user = $newUser->signup())) {
         throw new Exception(\Yii::t('skeeks/shop/app', 'Do not create a user profile.'));
     }
     $user->name = $this->name;
     $user->save();
     return $user;
 }