Browse Source
removed nakon related stuff
removed nakon related stuff
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/branches/legacy@78 4cb57b5f-5bbd-dd11-951b-001d605cbbc5master
pzinovkin
16 years ago
2 changed files with 0 additions and 182 deletions
@ -1,166 +0,0 @@ |
|||||
<?php |
|
||||
/** |
|
||||
* Класс для работы с пользователями |
|
||||
* |
|
||||
* @copyright |
|
||||
* @link |
|
||||
* @package Majestic |
|
||||
* @subpackage Decorator |
|
||||
* @since |
|
||||
* @version SVN: $Id$ |
|
||||
* @filesource $URL$ |
|
||||
*/ |
|
||||
class User |
|
||||
{ |
|
||||
static private $user = false; |
|
||||
|
|
||||
static function login($login, $password) |
|
||||
{ |
|
||||
if (empty($login) || empty($password)) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
if(!preg_match(UserData::REGEXP_LOGIN, $login)) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
self::setInfo(self::getByLogin($login)); |
|
||||
if (!self::getInfo() || self::$user->isBanned()) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
if(self::$user->pass != $password){ |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
self::setSession(); |
|
||||
$model = new UserDataModel(); |
|
||||
$model->loginUpdate($login); |
|
||||
|
|
||||
return true; |
|
||||
} |
|
||||
|
|
||||
static function logout() |
|
||||
{ |
|
||||
Env::setCookie(session_name(), '', 0); |
|
||||
Env::setCookie('login', '', 0); |
|
||||
Env::setCookie('login_hash', '', 0); |
|
||||
Env::setCookie('login_ipbhash', '', 0); |
|
||||
if (session_id()) { |
|
||||
session_destroy(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
static function process() |
|
||||
{ |
|
||||
if (Env::getCookie(session_name())) { //есть сессия
|
|
||||
@session_start(); |
|
||||
self::setInfo(Env::Session('user')); |
|
||||
} elseif (Env::getCookie('login') && Env::getCookie('login_hash')) { |
|
||||
self::remember(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
static function setSession() |
|
||||
{ |
|
||||
$hash = self::getHash(); |
|
||||
Env::setCookie('login', self::$user->login, TIME_NOW + LOGIN_COOKIE_TTL); |
|
||||
Env::setCookie('login_hash', $hash, TIME_NOW + LOGIN_COOKIE_TTL); |
|
||||
Env::setCookie('login_ipbhash', self::getIPBHash($hash), TIME_NOW + LOGIN_COOKIE_TTL); |
|
||||
|
|
||||
@session_start(); |
|
||||
|
|
||||
$_SESSION['user'] = self::$user; |
|
||||
} |
|
||||
|
|
||||
static function remember() |
|
||||
{ |
|
||||
self::setInfo(self::getByLogin(Env::getCookie('login'))); |
|
||||
|
|
||||
if (!self::getInfo()) { |
|
||||
self::logout(); |
|
||||
} |
|
||||
|
|
||||
if (Env::getCookie('login_hash') == self::getHash()) { |
|
||||
self::setSession(); |
|
||||
} else { |
|
||||
self::logout(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
static function getHash() |
|
||||
{ |
|
||||
return md5(self::$user->id.'hckrz'.self::$user->login.'mst'.self::$user->pass.'dai'); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Создает хеш для проверки хеша в в IPB |
|
||||
* |
|
||||
*/ |
|
||||
static public function getIPBHash($hash) |
|
||||
{ |
|
||||
return md5($hash . strtolower(self::$user->login) . 'brainfuck'); |
|
||||
} |
|
||||
|
|
||||
static function getInfo() |
|
||||
{ |
|
||||
return Env::Session('user', self::$user); |
|
||||
} |
|
||||
|
|
||||
static function setInfo($data) |
|
||||
{ |
|
||||
self::$user = $data; |
|
||||
} |
|
||||
|
|
||||
static function isGuest() |
|
||||
{ |
|
||||
return ! (bool) Env::Session('user'); |
|
||||
} |
|
||||
|
|
||||
static function getByLogin($login) |
|
||||
{ |
|
||||
$model = new UserDataModel(); |
|
||||
return $model->getByLogin($login); |
|
||||
} |
|
||||
|
|
||||
static function getById($id) |
|
||||
{ |
|
||||
$model = new UserDataModel(); |
|
||||
return $model->getById($id); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* отправляет письмо для активации |
|
||||
* |
|
||||
* @param string $mail |
|
||||
* @param string $login |
|
||||
* |
|
||||
*/ |
|
||||
static function sendActivateMail($mail, $login) |
|
||||
{ |
|
||||
$settings = Env::getParam('site_settings'); |
|
||||
$model = new UserActivateModel(); |
|
||||
$link = 'http://' . $settings['host_name'] . '/activate/?key=' . $model->generateKey($login, $mail); |
|
||||
|
|
||||
$text = new SettingsTextModel(); |
|
||||
$message = $text->getText('mail_activate'); |
|
||||
|
|
||||
$replaces = array( |
|
||||
'link' => $link, |
|
||||
'host' => $settings['site_url'], |
|
||||
'email' => $mail, |
|
||||
); |
|
||||
|
|
||||
if (!$message) { |
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
foreach ($replaces as $key => $val) { |
|
||||
$message->text = str_replace('%' . $key . '%', $val, $message->text); |
|
||||
} |
|
||||
$mailer = new Mailer(); |
|
||||
return $mailer->sendMessage($mail, 'Подтверждение E-mail ' . $settings['host_name'], $message->text); |
|
||||
} |
|
||||
} |
|
||||
?>
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue