Добавил namespace и зависимости

This commit is contained in:
CORP\phedor 2018-03-27 17:40:33 +03:00
parent e9f7c23990
commit 32ec09a66a
92 changed files with 454 additions and 128 deletions

View file

@ -3,7 +3,11 @@
/**
* Фильтр действий
*/
class Filter_ActionAccess
namespace ctiso\Filter;
use ctiso\Filter\UserAccess,
ctiso\HttpRequest;
class ActionAccess
{
public $access = array();
public $processor;
@ -19,7 +23,7 @@ class Filter_ActionAccess
*/
function checkAction($action) {
// Импликация !! http://ru.wikipedia.org/wiki/Импликация
return (!isset($this->access[$action]) || in_array(Filter_UserAccess::$access, $this->access[$action]));
return (!isset($this->access[$action]) || in_array(UserAccess::$access, $this->access[$action]));
}
function execute(HttpRequest $request) {

View file

@ -1,6 +1,11 @@
<?php
class Filter_ActionLogger
namespace ctiso\Filter;
use ctiso\Shortcut,
ctiso\HttpRequest,
ctiso\Filter\UserAccess;
class ActionLogger
{
public $before = array();
public $file;
@ -15,7 +20,7 @@ class Filter_ActionLogger
function execute(HttpRequest $request) {
$action = $request->getAction();
if(in_array($action, $this->before)) {
fwrite($this->file, "time: " . date("r", time()) . " query: ". json_encode(array_merge($_POST, $_GET)) . " by: " . Filter_UserAccess::$name . "\n");
fwrite($this->file, "time: " . date("r", time()) . " query: ". json_encode(array_merge($_POST, $_GET)) . " by: " . UserAccess::$name . "\n");
}
return $this->processor->execute($request);
}

View file

@ -1,6 +1,8 @@
<?php
class Filter_Authorization {
namespace ctiso\Filter;
class Authorization {
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';

View file

@ -3,7 +3,10 @@
/**
* Попытка реализовать фильтр для запросов
*/
class Filter_Filter
namespace ctiso\Filter;
use ctiso\HttpRequest;
class Filter
{
public $processor;
public function __construct(/*.Controller_Action.*/$processor)

View file

@ -8,7 +8,15 @@
*/
// В класс авторизации передавать обьект для управления пользователем
// Вынести в отдельный файл
class Filter_Login extends Filter_Filter
namespace ctiso\Filter;
use ctiso\Filter\Filter,
ctiso\HttpRequest,
ctiso\Filter\UserAccess,
ctiso\Settings,
ctiso\Database,
ctiso\Collection;
class Login extends Filter
{
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';
@ -29,17 +37,17 @@ class Filter_Login extends Filter_Filter
// Авторизация
session_start();
$db = $this->getConnection();
Filter_UserAccess::setUp($db); // Соединение
UserAccess::setUp($db); // Соединение
switch ($request->getAction()) {
// Авторизация по постоянному паролю
case 'login':
$login = $request->get('login');
$password = $request->get('password');
$result = Filter_UserAccess::getUserByLogin($login); // Поиск по логину
$result = UserAccess::getUserByLogin($login); // Поиск по логину
if ($result) {
$userPassword = $result->getString('password');
if (Filter_UserAccess::$access == 'site_root' && defined('PARENT_PATH')) {
if (UserAccess::$access == 'site_root' && defined('PARENT_PATH')) {
$s = new Settings(PARENT_PATH . '/settings.json');
$s->read();
$dsn = $s->readKey(array('system', 'dsn'));
@ -63,7 +71,7 @@ class Filter_Login extends Filter_Filter
case 'enter':
$login = $request->get('login');
$password = $request->get('sid');
$result = Filter_UserAccess::getUserByLogin($login); // Поиск по логину
$result = UserAccess::getUserByLogin($login); // Поиск по логину
if ($result) {
$temp = md5($result->getString('password') . $result->getString('login') . $result->getString('sid'));
if ($password == $temp) {
@ -77,7 +85,7 @@ class Filter_Login extends Filter_Filter
// Если $hash не совпадает $_SESSION['hash'] то удаляем сессию
if (isset($_SESSION ['access']) && isset($_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME])) {
if ($hash == $_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME]) {
$this->user = $user = Filter_UserAccess::getUserById($_SESSION['access']); // Поиск по идентификатору
$this->user = $user = UserAccess::getUserById($_SESSION['access']); // Поиск по идентификатору
if ($user && isset($_SESSION['random']) && ($user->get('sid') == $_SESSION['random'])) {
return true;
}

View file

@ -1,7 +1,11 @@
<?php
// Класс должен быть в библиотеке приложения
class Filter_UserAccess
namespace ctiso\Filter;
use ctiso\Database,
ctiso\Database\Statement;
class UserAccess
{
const LIFE_TIME = 1800; // = 30min * 60sec;
@ -21,7 +25,7 @@ class Filter_UserAccess
self::$db = $db;
}
public static function getUserByQuery(Database_Statement $stmt)
public static function getUserByQuery(Statement $stmt)
{
global $GROUPS;
$result = $stmt->executeQuery();