Добавил namespace и зависимости
This commit is contained in:
parent
e9f7c23990
commit
32ec09a66a
92 changed files with 454 additions and 128 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
/**
|
||||
* Попытка реализовать фильтр для запросов
|
||||
*/
|
||||
class Filter_Filter
|
||||
namespace ctiso\Filter;
|
||||
use ctiso\HttpRequest;
|
||||
|
||||
class Filter
|
||||
{
|
||||
public $processor;
|
||||
public function __construct(/*.Controller_Action.*/$processor)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue