Ip\Internal\Admin\SiteController::loginAjax PHP 메소드

loginAjax() 공개 메소드

public loginAjax ( )
    public function loginAjax()
    {
        ipRequest()->mustBePost();
        $validateForm = FormHelper::getLoginForm();
        $errors = $validateForm->validate(ipRequest()->getPost());
        $username = ipRequest()->getPost('login');
        if (empty($errors)) {
            $model = Model::instance();
            if (!$model->login($username, ipRequest()->getPost('password'))) {
                $errors = $model->getErrors();
            }
        }
        $redirectUrl = ipHomeUrl();
        $model = Model::instance();
        $adminMenuItems = $model->getAdminMenuItems(null);
        if (!empty($adminMenuItems)) {
            //redirect user to the first module
            $firstMenuItem = $adminMenuItems[0];
            $redirectUrl = $firstMenuItem->getUrl();
        }
        if (empty($errors)) {
            $answer = array('status' => 'success', 'redirectUrl' => $redirectUrl);
        } else {
            $answer = array('status' => 'error', 'errors' => $errors);
            $usageStatistics = array('action' => 'Admin.loginFailed', 'data' => array('admin' => $username, 'errors' => $errors));
            \Ip\Internal\System\Model::sendUsageStatistics($usageStatistics);
        }
        if (ipRequest()->getPost('ajax', 1)) {
            $response = new \Ip\Response\Json($answer);
            return $response;
        } else {
            //MultiSite autologin
            return new \Ip\Response\Redirect($redirectUrl);
        }
    }