public function actionRequest() {
    if (!$this->module->enablePasswordRecovery) {
      throw new NotFoundHttpException();
    }

    /** @var RecoveryForm $model */
    $model = Yii::createObject([
      'class' => RecoveryForm::className(),
      'scenario' => 'request',
    ]);
    $event = $this->getFormEvent($model);

    $this->performAjaxValidation($model);
    $this->trigger(self::EVENT_BEFORE_REQUEST, $event);

    if ($model->load(Yii::$app->request->post()) && $model->sendRecoveryMessage()) {
      $this->trigger(self::EVENT_AFTER_REQUEST, $event);
      return $this->render('/message', [
        'title' => Yii::t('users', 'Recovery message sent'),
        'module' => $this->module,
      ]);
    }

    return $this->render('request', [
      'model' => $model,
    ]);
  }