public function actionConfirm($key) { $this->layout = '//home/yii'; $success = false; $userKey = UserKey::findActiveByKey($key, [UserKey::TYPE_EMAIL_ACTIVATE, UserKey::TYPE_EMAIL_CHANGE]); if ($userKey) { $user = new User(); $user = $user::findOne($userKey->id_user); if ($user->status == Dict::USER_STATUS_INACTIVE) { $user->confirm(Dict::USER_STATUS_INACTIVE); } else { $user->confirm(Dict::USER_STATUS_ACTIVE); } $userKey->consume(); $success = $user->email; } else { return $this->render("badlink"); } return $this->render("confirm", ["userKey" => $userKey, "success" => $success]); }
public static function forgotPassword($type, $user, $expireTime) { $expireTime = $expireTime !== null ? date("Y-m-d H:i:s", strtotime("+" . $expireTime)) : null; $userKey = UserKey::generate($user->id, UserKey::TYPE_PASSWORD_RESET, $expireTime); $template = 'forgotPassword'; $subject = DictEmail::$emailType[$type]; return ['subject' => $subject, 'template' => $template, 'user' => $user, 'userKey' => $userKey]; }
/** * @return \yii\db\ActiveQuery */ public function getUserKeys() { return $this->hasMany(UserKey::className(), ['user_id' => 'user_id']); }