Browse Source

removed nakon related stuff

git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/branches/legacy@78 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
master
pzinovkin 15 years ago
parent
commit
75b096c6b2
  1. 16
      classes/Env.class.php
  2. 166
      classes/User.class.php

16
classes/Env.class.php

@ -87,21 +87,5 @@ final class Env
$res = isset($_FILES[$name]) ? $_FILES[$name] : $default;
return $param ? $res[$param] : $res;
}
/**
* Получить цену ставки
*
* @param integer $dis - некое число от кооторого считается скидка
*/
static public function getBidCost($dis = 0)
{
$settings_model = new SettingsModel();
$cost = $settings_model->get('bid_base_price');
if ($dis > 0 && $dis <= 100) {
return $cost - intval($dis);
}
return $cost;
}
}
?>

166
classes/User.class.php

@ -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);
}
}
?>
Loading…
Cancel
Save