Login.php 1.1 KB
<?php

namespace frontend\modules\user\widgets;

use Yii;
use yii\helpers\Url;
use yii\web\Response;
use yii\base\Widget;
use frontend\modules\user\models\form\SignInForm;


/**
 * Class LogIn
 *
 * @author Andrii Bondarchuk
 * @copyright (c) 2016, VipDesign
 */
class Login extends Widget
{
    /**
     * @var string
     */
    public $view = 'login';

    /**
     * @var string
     */
    public $redirectUrl = null;

    /**
     * @var
     */
    protected $model = SignInForm::class;

    /**
     * @return bool
     */
    public function run()
    {
        $model = new $this->model;
        $model->setScenario('signIn');

        if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
            return ($this->redirectUrl)
                ? $this->redirect($this->redirectUrl)
                : $this->goHome();;
        } elseif (Yii::$app->request->isAjax) {
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ['error' => Yii::t('app', 'Incorrect email or password')];
        }

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