Exemplo n.º 1
0
 /**
  * Display registration page
  * input parameter $i is bedoeld om onderscheid te maken in abbonementstype aanbieding
  */
 public function actionRegister($i = '')
 {
     $user = Yii::$app->getModule("user")->model("User", ["scenario" => "register"]);
     $profile = Yii::$app->getModule("user")->model("Profile");
     $company = Yii::$app->getModule("user")->model("Company");
     $userabonnement = Yii::$app->getModule("user")->model("UserAbonnement");
     $abonnementstype = $i;
     //controleer of het abonnementype bestaat
     if (($abonnementstypeMdl = Abonnement::findOne($abonnementstype)) === null) {
         $abonnementstypeMdl = null;
     }
     // load post data
     $post = Yii::$app->request->post();
     if ($user->load($post)) {
         // ensure profile data gets loaded
         $profile->load($post);
         $company->load($post);
         $userabonnement->load($post);
         // validate for ajax request
         if (Yii::$app->request->isAjax) {
             Yii::$app->response->format = Response::FORMAT_JSON;
             return ActiveForm::validate($user, $profile, $company, $userabonnement);
         }
         // validate for normal request
         if ($user->validate() && $profile->validate() && $company->validate() && $userabonnement->validate()) {
             // perform registration
             $role = Yii::$app->getModule("user")->model("Role");
             //DE rol contactpersoon wordt gezet
             $user->setRegisterAttributes($role::ROLE_CONTACTPERSON, Yii::$app->request->userIP)->save(false);
             $profile->setUser($user->id)->save(false);
             $company->setUser($user->id)->save(false);
             $user->company_id = $company->id;
             $userabonnement->user_id = $user->id;
             $userabonnement->newAbonnement();
             $userabonnement->save(false);
             $user->save(true);
             //set de standaard tarieven bij registratie
             UserTarieven::defaultValues($user->id);
             $userreistarief = new UserReistarief();
             $userreistarief->user_id = $user->id;
             $userreistarief->setDefaultValues();
             $userreistarief->save(false);
             $this->afterRegister($user);
             // set flash
             // don't use $this->refresh() because user may automatically be logged in and get 403 forbidden
             $successText = Yii::t("user", "Successvol geregistreerd [ {displayName} ]", ["displayName" => $user->getDisplayName()]);
             $guestText = "";
             if (Yii::$app->user->isGuest) {
                 $guestText = Yii::t("user", " - Controleer nu uw E-mail om u account te bevestigen");
             }
             Yii::$app->session->setFlash("Register-success", $successText . $guestText);
         }
     }
     // render
     return $this->render("register", ['user' => $user, 'profile' => $profile, 'company' => $company, 'userabonnement' => $userabonnement, 'abonnementstypeMdl' => $abonnementstypeMdl]);
 }