Другая интерпретация реестра
This commit is contained in:
parent
40fad0e75b
commit
aaa9c2e1bf
21 changed files with 156 additions and 92 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue