email)) { if (!isset($_REQUEST['f']) && isset($_COOKIE['icehrmLF']) && $_REQUEST['login'] != 'no' && !isset($_REQUEST['username'])) { $tempUser = new \Users\Common\Model\User(); $tempUser->Load("login_hash = ?", array($_COOKIE['icehrmLF'])); if (!empty($tempUser->id) && sha1($tempUser->email."_".$tempUser->password) == $_COOKIE['icehrmLF']) { $_REQUEST['username'] = $tempUser->username; $_REQUEST['password'] = $tempUser->password; $hashedPwd = $tempUser->password; $_REQUEST['remember'] = true; $cookieLogin = true; } } if (!empty($_REQUEST['username']) && !empty($_REQUEST['password'])) { $suser = null; $ssoUserLoaded = false; if($_REQUEST['username'] != "admin") { if (\Classes\SettingsManager::getInstance()->getSetting("LDAP: Enabled") == "1") { $ldapResp = \Classes\LDAPManager::getInstance()->checkLDAPLogin($_REQUEST['username'], $_REQUEST['password']); if ($ldapResp->getStatus() == \Classes\IceResponse::ERROR) { header("Location:" . CLIENT_BASE_URL . "login.php?f=1"); exit(); } else { $suser = new \Users\Common\Model\User(); $suser->Load("username = ?", array($_REQUEST['username'])); if (empty($suser)) { header("Location:" . CLIENT_BASE_URL . "login.php?f=1"); exit(); } $ssoUserLoaded = true; } } } if (!isset($hashedPwd)) { $hashedPwd = md5($_REQUEST['password']); } if (empty($suser)) { $suser = new \Users\Common\Model\User(); $suser->Load( "(username = ? or email = ?) and password = ?", array($_REQUEST['username'], $_REQUEST['username'], $hashedPwd) ); } if (empty($suser->username) || empty($suser->email)) { $next = !empty($_REQUEST['next'])?'&next='.$_REQUEST['next']:''; header("Location:".CLIENT_BASE_URL."login.php?f=1".$next); exit(); } $loginCsrf = \Utils\SessionUtils::getSessionObject('csrf-login'); if (!$cookieLogin && ($_REQUEST['csrf'] != $loginCsrf || empty($_REQUEST['csrf']))) { $next = !empty($_REQUEST['next'])?'&next='.$_REQUEST['next']:''; header("Location:".CLIENT_BASE_URL."login.php?f=1".$next); exit(); } if ($suser->password === $hashedPwd || $ssoUserLoaded) { $user = $suser; \Utils\SessionUtils::saveSessionObject('user', $user); $suser->last_login = date("Y-m-d H:i:s"); $suser->Save(); if (!$ssoUserLoaded && !empty(\Classes\BaseService::getInstance()->auditManager)) { \Classes\BaseService::getInstance()->auditManager->user = $user; \Classes\BaseService::getInstance()->audit(\Classes\IceConstants::AUDIT_AUTHENTICATION, "User Login"); } if (!$ssoUserLoaded && isset($_REQUEST['remember'])) { //Add cookie $suser->login_hash = sha1($suser->email."_".$suser->password); $suser->Save(); setcookie('icehrmLF', $suser->login_hash, strtotime('+30 days')); } else if (!isset($_REQUEST['remember'])) { setcookie('icehrmLF', ''); } if (!isset($_REQUEST['remember'])) { setcookie('icehrmLF'); } if (!empty($_REQUEST['next']) && !empty(($loginRedirect = \Base64Url\Base64Url::decode($_REQUEST['next'])))) { header("Location:" . CLIENT_BASE_URL.$loginRedirect); exit(); } else { if ($user->user_level == "Admin") { if (\Utils\SessionUtils::getSessionObject('account_locked') == "1") { header("Location:".CLIENT_BASE_URL."?g=admin&n=billing&m=admin_System"); exit(); } else { header("Location:".HOME_LINK_ADMIN); exit(); } } else { if (empty($user->default_module)) { header("Location:".HOME_LINK_OTHERS); exit(); } else { $defaultModule = new \Modules\Common\Model\Module(); $defaultModule->Load("id = ?", array($user->default_module)); if ($defaultModule->mod_group == "user") { $defaultModule->mod_group = "modules"; } $homeLink = CLIENT_BASE_URL."?g=".$defaultModule->mod_group."&&n=".$defaultModule->name. "&m=".$defaultModule->mod_group."_".str_replace(" ", "_", $defaultModule->menu); header("Location:".$homeLink); exit(); } } } } else { $next = !empty($_REQUEST['next'])?'&next='.$_REQUEST['next']:''; header("Location:".CLIENT_BASE_URL."login.php?f=1".$next); exit(); } } } else { if ($user->user_level == "Admin") { header("Location:".HOME_LINK_ADMIN); exit(); } else { if (empty($user->default_module)) { header("Location:".HOME_LINK_OTHERS); exit(); } else { $defaultModule = new \Modules\Common\Model\Module(); $defaultModule->Load("id = ?", array($user->default_module)); if ($defaultModule->mod_group == "user") { $defaultModule->mod_group = "modules"; } $homeLink = CLIENT_BASE_URL."?g=".$defaultModule->mod_group."&n=".$defaultModule->name. "&m=".$defaultModule->mod_group."_".str_replace(" ", "_", $defaultModule->menu); header("Location:".$homeLink); exit(); } } } $tuser = \Utils\SessionUtils::getSessionObject('user'); $logoFileUrl = \Classes\UIManager::getInstance()->getCompanyLogoUrl(); ?> <?=APP_NAME?> Login