<?php
class Authorization {
private static $instance = NULL;
const LOGIN_VALID_OK = 0;
const LOGIN_VALID_EMPTY = 1;
const LOGIN_VALID_SMALL = 2;
const LOGIN_VALID_BIG = 3;
const PASSW_VALID_OK = 0;
const PASSW_VALID_EMPTY = 1;
const PASSW_VALID_SMALL = 2;
const PASSW_VALID_BIG = 3;
public static function getInstance()
{
if(self::$instance == NULL)
self::$instance = new self();
return self::$instance;
}
private function validateLogin($login)
{
if(strlen($login) == 0)
$status = self::LOGIN_VALID_EMPTY;
if(!isset($status) AND strlen($login) < 3)
$status = self::LOGIN_VALID_SMALL;
if(!isset($status) AND strlen($login) > 35)
$status = self::LOGIN_VALID_BIG;
if(!isset($status))
$status = self::LOGIN_VALID_OK;
return $status;
}
private function validatePassword($password)
{
if(strlen($password) == 0)
$status = self::PASSW_VALID_EMPTY;
if(!isset($status) AND strlen($password) < 3)
$status = self::PASSW_VALID_SMALL;
if(!isset($status) AND strlen($password) > 35)
$status = self::PASSW_VALID_BIG;
if(!isset($status))
$status = self::PASSW_VALID_OK;
return $status;
}
public function login($login, $password)
{
$login = trim($login);
$password = trim($password);
if(self::validateLogin($login) == 0 AND self::validatePassword($password) == 0)
{
$db = Registry::get('database');
$result = $db->query();
$row = $result->fetch(PDO::FETCH_ASSOC);
if($row)
{
$result = $db->query();
$row['balance'] = $result->fetchColumn();
$result = $db->query();
$row['history'] = $result->fetchAll(PDO::FETCH_ASSOC);
self::storeUserData($row);
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
private function storeUserData($userData)
{
$_SESSION['user_data'] = $userData;
$_SESSION['isUserLogin'] = true;
}
public function getUserData()
{
return $_SESSION['user_data'];
}
public function isUserLogin()
{
return $_SESSION['isUserLogin'];
}
public function logout()
{
//$this->removeDataFromSession();
if(isset($_SESSION['user_data']))
unset($_SESSION['user_data']);
$_SESSION['isUserLogin'] = false;
}
/*
private function removeDataFromSession()
{
if(isset($_SESSION['user_data']))
unset($_SESSION['user_data']);
}
*/
}