/** * Perform login * * @access private * @param array $_post _POST array * @return void */ private function do_login($_post) { // check failure counter if ($_SESSION['failed'] < 5) { // fields to set in sessions $fields = array('mail' => 'mail', 'username' => 'username', 'id' => 'xuid', 'lang' => 'lang', 'last_in' => 'last_in', 'level' => 'level'); // conditions $conditions = array('id_area' => 1, 'username' => $_post['username']); // remember me $conditions['password'] = isset($_post['hpwd']) && $_post['password'] == '12345678' ? $_post['hpwd'] : X4Utils_helper::hashing($_post['password']); // log in $login = X4Auth_helper::log_in('users', $conditions, $fields, true, true); if ($login) { // post login operations $_SESSION['site'] = SITE; $_SESSION['id_area'] = 1; // admin AREA ID // set cookie for remember me if (isset($_post['remember_me'])) { setcookie(COOKIE . '_login', $conditions['username'] . '-' . $conditions['password'], time() + 2592000, '/', $_SERVER['HTTP_HOST']); } // refactory permissions $mod = new Permission_model(); $mod->refactory($_SESSION['xuid']); // log if (LOGS) { $mod = new X4Auth_model('users'); $mod->logger($_SESSION['xuid'], 1, 'users', 'log in'); } // redirect header('Location: ' . $this->site->site->domain . '/' . $_SESSION['lang'] . '/admin'); die; } else { // increase failure counter $_SESSION['failed']++; if (LOGS) { $mod = new X4Auth_model('users'); $mod->logger(0, 1, 'users', 'log in failed for ' . $_post['username']); } } } // redirect header('Location: ' . BASE_URL . 'login'); die; }
/** * Perform login * * @param array $_post _POST array * @param integer $id_area Area ID * @return void */ public function do_login($_post, $id_area) { if ($_SESSION['failed'] < 5) { // fields to set in sessions $fields = array('mail' => 'mail', 'username' => 'username', 'id' => 'uid', 'last_in' => 'last_in'); // conditions $conditions = array('id_area' => $id_area, 'username' => $_post['username']); // remember me $conditions['password'] = isset($_post['hpwd']) && $_post['password'] == '12345678' ? $_post['hpwd'] : X4Utils_helper::hashing($_post['password']); // log in $login = X4Auth_helper::log_in('users', $conditions, $fields); if ($login) { $_SESSION['failed'] = 0; // post login operations $_SESSION['site'] = SITE; $_SESSION['id_area'] = $id_area; // set cookie for remember me if (isset($_post['remember_me'])) { setcookie(COOKIE . '_login', $conditions['username'] . '-' . $conditions['password'], time() + 2592000, '/', $_SERVER['HTTP_HOST']); } $mod = new X4Auth_model('users'); // log if (LOGS) { $mod->logger($_SESSION['uid'], $id_area, 'users', 'log in'); } $area = $mod->get_by_id($id_area, 'areas', 'name'); // redirect header('Location: ' . BASE_URL . $area->name); die; } else { // increase failure counter $_SESSION['failed']++; if (LOGS) { $mod = new X4Auth_model('users'); $mod->logger(0, $id_area, 'users', 'log in failed for ' . $_post['username']); } } } header('Location: ' . BASE_URL . 'login'); die; }