Альтернативный белый список
This commit is contained in:
parent
86a180123b
commit
82c129305e
19 changed files with 82 additions and 131 deletions
|
|
@ -13,12 +13,8 @@ class Filter_Login extends Filter_Filter
|
|||
const SESSION_BROWSER_SIGN_SECRET = '@w3dsju45Msk#';
|
||||
const SESSION_BROWSER_SIGN_KEYNAME = 'session.app.browser.sign';
|
||||
public $mode = 'ajax';
|
||||
public $user;
|
||||
|
||||
//AJAX-Реквесты для которых не требуется авторизация, потребовалось для сбора статистики
|
||||
public $whiteRequestList = [['module' => "requiredcontent", "action" => "getcount"],
|
||||
['module' => "requiredcontent", "action" => "teststructure"],
|
||||
['module' => "requiredcontent", "action" => "specialdump"]
|
||||
];
|
||||
/**
|
||||
* Проверка авторизации
|
||||
* @return Boolean Авторизовани пользователь или нет
|
||||
|
|
@ -29,6 +25,7 @@ class Filter_Login extends Filter_Filter
|
|||
session_start();
|
||||
$db = $this->getConnection();
|
||||
Filter_UserAccess::setUp($db); // Соединение
|
||||
|
||||
switch ($request->getAction()) {
|
||||
// Авторизация по постоянному паролю
|
||||
case 'login':
|
||||
|
|
@ -142,7 +139,7 @@ class Filter_Login extends Filter_Filter
|
|||
// Параметры при неправильной авторизации
|
||||
// Действия по умолчанию !! Возможно переход на форму регистрации
|
||||
if ($request->get('mode') == 'ajax') {
|
||||
if (!$this->requestIsWhite($request, $this->whiteRequestList)) {
|
||||
if (!$this->requestIsWhite($request)) {
|
||||
return json_encode(array('result' => 'fail', 'message' =>"NOT_AUTHORIZED"));
|
||||
}
|
||||
} else {
|
||||
|
|
@ -165,11 +162,14 @@ class Filter_Login extends Filter_Filter
|
|||
* Проверка на попадание реквеста в белый список
|
||||
*/
|
||||
|
||||
public function requestIsWhite(Collection $request, $whiteRequestList){
|
||||
public function requestIsWhite(Collection $request) {
|
||||
$module = $request->get('module');
|
||||
$action = $request->get('action');
|
||||
foreach ($whiteRequestList as $whiteRequest) {
|
||||
if ($module == $whiteRequest['module'] && $action == $whiteRequest['action']) {
|
||||
|
||||
$file = Path::join(CMS_PATH, 'modules', $module, 'filters', 'white.php');
|
||||
if (file_exists($file)) {
|
||||
$whiteList = include $file;
|
||||
if (in_array($action, $whiteList)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue