示例#1
0
 public function actionRegisterExtra()
 {
     $model = new User(['scenario' => 'register']);
     $modelExtra = new UserExtra();
     $oauth = false;
     // Dung kiem tra xem co dang ky qua OAuth hay ko
     if (($oauthParam = Yii::$app->request->getQueryParam('oauth')) != null) {
         if (($oauthData = StringHelper::decrypt($oauthParam)) != null) {
             $oauth = true;
             if ($model->email === null) {
                 $model->email = $oauthData['email'];
             }
             if ($model->display_name === null) {
                 $model->display_name = $oauthData['name'];
             }
         }
     }
     if ($model->load(Yii::$app->request->post()) and $model->validate() and $modelAdditionBlocks = LetHelper::saveAdditionBlocks($model)) {
         // Default value
         $model->status = User::STATUS_ACTIVE;
         // Bỏ qua bước xác thực khi đăng ký qua OAuth
         if ($oauth === true && !empty($oauthData)) {
             $model->openids = [$oauthData['provider'] => $oauthData['uid']];
         }
         if ($model->save()) {
             if (is_array($modelAdditionBlocks)) {
                 foreach ($modelAdditionBlocks as $modelAdditionBlock) {
                     $modelAdditionBlock->_id = (string) $model->_id;
                     $modelAdditionBlock->save();
                 }
             }
             Yii::$app->user->login($model);
             return $this->goHome();
         }
     }
     return $this->render('registerExtra', ['model' => $model, 'modelExtra' => $modelExtra]);
 }