Другая интерпретация реестра

This commit is contained in:
CORP\phedor 2018-04-20 18:03:39 +03:00
parent 40fad0e75b
commit aaa9c2e1bf
21 changed files with 156 additions and 92 deletions

View file

@ -5,15 +5,18 @@
*/
namespace ctiso\Filter;
use ctiso\Filter\UserAccess,
ctiso\HttpRequest;
ctiso\HttpRequest,
ctiso\Role\User;
class ActionAccess
{
public $access = array();
public $processor;
public /*.User.*/$user;
function __construct(/*.Filter.*/$processor) {
function __construct(/*.Filter.*/$processor, $user) {
$this->processor = $processor;
$this->user = $user;
}
/**

View file

@ -5,38 +5,41 @@ namespace ctiso\Filter;
class Authorization {
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';
public $group;
static function isLogged($group = 'access') {
function __construct($group) {
$this->group = $group;
}
function isLogged() {
// echo session_status();
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$hash = self::getBrowserSign();
// Если $hash не совпадает $_SESSION['hash'] то удаляем сессию
if (isset($_SESSION[$group]) && isset($_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME])) {
if (isset($_SESSION[$this->group]) && isset($_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME])) {
if ($hash == $_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME]) {
// UserAccess::getUserById($_SESSION ['access']); // Поиск по идентификатору
return true;
} else {
return false;
return false;
}
}
return false;
}
static function enter($id, $group = 'access')
{
function enter($id) {
// $db->executeQuery("UPDATE visitor SET sid = '' WHERE id_visitor = " . $result->getInt('id_user'));
// session_register("access");
// session_register("time");
// $_SESSION ["group"] = $result->getInt('access');
$_SESSION [$group] = $id; // id_user
$_SESSION [$this->group] = $id;
$_SESSION [self::SESSION_BROWSER_SIGN_KEYNAME] = self::getBrowserSign();
$_SESSION ["time"] = time();
$_SESSION ["time"] = time();
}
private static function getBrowserSign()
static function getBrowserSign()
{
$rawSign = self::SESSION_BROWSER_SIGN_SECRET;
// $signParts = array('HTTP_USER_AGENT', 'HTTP_ACCEPT_ENCODING');
@ -48,7 +51,7 @@ class Authorization {
return md5($rawSign);
}
static function logout() {
function logout() {
session_destroy();
}
}

View file

@ -13,6 +13,7 @@ use ctiso\Filter\Filter,
ctiso\HttpRequest,
ctiso\Settings,
ctiso\Database,
ctiso\Role\User,
ctiso\Collection;
class Login extends Filter
@ -22,7 +23,7 @@ class Login extends Filter
public $mode = 'ajax';
public $user;
public $role;
public /*.User.*/$role;
public $whitelist;
function __construct($processor, $role, $whitelist = []) {
@ -140,7 +141,7 @@ class Login extends Filter
// Параметры при неправильной авторизации
// Действия по умолчанию !! Возможно переход на форму регистрации
if ($request->get('mode') == 'ajax') {
if (!$this->requestIsWhite($request, $this->whiteRequestList)) {
if (!$this->requestIsWhite($request, $this->whitelist)) {
return json_encode(array('result' => 'fail', 'message' =>"NOT_AUTHORIZED"));
}
} else {