public function safeDown()
 {
     $this->dropTable(UserKey::tableName());
     $this->dropTable(Profile::tableName());
     $this->dropTable(User::tableName());
     echo "m140908_144113_Init_DB has been returned.\n";
 }
Beispiel #2
0
 /**
  * Validate user status
  */
 public function validateUserStatus()
 {
     // check for ban status
     $user = $this->getUser();
     if ($user->ban_to && $user->ban_to > time()) {
         $this->addError("username", Yii::t("user", "User is banned - {banReason}", ["banReason" => $user->ban_reason]));
     }
     // check status and resend email if inactive
     if ($user->status == $user::INACTIVE) {
         $userKey = UserKey::generate($user->id, UserKey::EMAIL_ACTIVATE, $user->getModule()->confirmKeyDuration);
         $user->sendEmailConfirmation($userKey);
         $this->addError("username", Yii::t("user", "User is not active, confirmation email with ney key resent"));
     }
 }
 public function actionIndex()
 {
     /** @var $user \dkeeper\yii2\user\models\User */
     $user = Yii::$app->getModule("user")->model("user", ["scenario" => "register"]);
     if ($user->load(Yii::$app->request->post())) {
         // validate for ajax request
         if (Yii::$app->request->isAjax) {
             Yii::$app->response->format = Response::FORMAT_JSON;
             return ActiveForm::validate($user);
         }
         // validate for normal request
         if ($user->validate()) {
             $user->create_ip = Yii::$app->request->userIP;
             $user->setRegisterAttributes()->save(false);
             $profile = $user->getModule()->model('profile');
             $profile->user_id = $user->id;
             $profile->save();
             if (!$user->email_confirm) {
                 $userKey = UserKey::generate($user->id, UserKey::EMAIL_ACTIVATE, $user->getModule()->confirmKeyDuration);
                 $user->sendEmailConfirmation($userKey);
             }
             if (!$user->phone_confirm) {
                 $userKey = UserKey::generate($user->id, UserKey::PHONE_ACTIVATE, $user->getModule()->confirmKeyDuration);
                 $user->sendPhoneConfirmation($userKey);
             }
             // set flash
             // don't use $this->refresh() because user may automatically be logged in and get 403 forbidden
             $successText = Yii::t("user", "Successfully registered [ {displayName} ]", ["displayName" => $user->getDisplayName()]);
             $guestText = "";
             if (Yii::$app->user->isGuest) {
                 $guestText = Yii::t("user", " - Please check your email to confirm your account");
             }
             Yii::$app->session->setFlash("Register-success", $successText . $guestText);
         }
     }
     return $this->render('index', ['user' => $user]);
 }
Beispiel #4
0
 public function actionUpdate($id)
 {
     /** @var $user \dkeeper\yii2\user\models\User */
     /** @var $profile \dkeeper\yii2\user\models\Profile */
     $user = Yii::$app->getModule('user')->model('user');
     $user = $user::findOne($id);
     $profile = $user->profile;
     if (Yii::$app->request->isAjax) {
         $user->load(Yii::$app->request->post());
         $profile->load(Yii::$app->request->post());
         Yii::$app->response->format = Response::FORMAT_JSON;
         return ActiveForm::validate($user, $profile);
     }
     if ($user->load(Yii::$app->request->post()) && $user->validate() && $profile->load(Yii::$app->request->post())) {
         $user->setRegisterAttributes()->save(false);
         $profile->user_id = $user->id;
         if ($profile->save()) {
             if (!$user->email_confirm) {
                 $userKey = UserKey::generate($user->id, UserKey::EMAIL_ACTIVATE, $user->getModule()->confirmKeyDuration);
                 $user->sendEmailConfirmation($userKey);
             }
             if (!$user->phone_confirm) {
                 $userKey = UserKey::generate($user->id, UserKey::PHONE_ACTIVATE, $user->getModule()->confirmKeyDuration);
                 $user->sendPhoneConfirmation($userKey);
             }
             $this->redirect('/user/admin');
         }
     }
     return $this->render('update', ['user' => $user, 'profile' => $profile]);
 }