/** * Авторизовывает юзера * * @param ModuleUser_EntityUser $oUser Объект пользователя * @param bool $bRemember Запоминать пользователя или нет * @param string $sKey Уникальный ключ сессии * @return bool */ public function Authorization(ModuleUser_EntityUser $oUser, $bRemember = true, $sKey = null) { if (!$oUser->getId() or !$oUser->getActivate()) { return false; } /** * Создаём новую сессию */ if (!$this->CreateSession($oUser, $sKey)) { return false; } /** * Запоминаем в сесси юзера */ $this->Session_Set('user_id', $oUser->getId()); $this->Session_Set('session_key', $this->oSession->getKey()); $this->oUserCurrent = $oUser; /** * Ставим куку */ if ($bRemember) { $this->Session_SetCookie('key', $this->oSession->getKey(), time() + Config::Get('module.user.time_login_remember'), false, true); } return true; }
/** * Обновление данных сессии * * @param ModuleUser_EntitySession $oSession * * @return int|bool */ public function UpdateSession(ModuleUser_EntitySession $oSession) { $sql = "UPDATE ?_session\n\t\t\tSET\n\t\t\t\tsession_ip_last = ? ,\n\t\t\t\tsession_date_last = ? ,\n\t\t\t\tsession_exit = ?\n\t\t\tWHERE session_key = ?\n\t\t"; $bResult = $this->oDb->query($sql, $oSession->getIpLast(), $oSession->getDateLast(), $oSession->getDateExit(), $oSession->getKey()); return $bResult !== false; }
/** * Создание пользовательской сессии * * @param ModuleUser_EntitySession $oSession * @return bool */ public function CreateSession(ModuleUser_EntitySession $oSession) { $sql = "REPLACE INTO " . Config::Get('db.table.session') . "\n SET\n session_key = ? ,\n user_id = ? ,\n session_ip_create = ? ,\n session_ip_last = ? ,\n session_date_create = ? ,\n session_date_last = ?\n "; return $this->oDb->query($sql, $oSession->getKey(), $oSession->getUserId(), $oSession->getIpCreate(), $oSession->getIpLast(), $oSession->getDateCreate(), $oSession->getDateLast()); }
/** * Удаление сессии * * @param ModuleUser_EntitySession $oSession * @return int|bool */ public function DeleteSession(ModuleUser_EntitySession $oSession) { $sql = "DELETE FROM " . Config::Get('db.table.session') . "\n\t\t\tWHERE session_key = ?\n\t\t"; $res = $this->oDb->query($sql, $oSession->getKey()); return $this->IsSuccessful($res); }