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);
}
}