diff --git a/src/Filter/Login.php b/src/Filter/Login.php index 63c7ff5..cf19381 100644 --- a/src/Filter/Login.php +++ b/src/Filter/Login.php @@ -3,10 +3,10 @@ /** * Фильтр для проверки авторизации * - * action: login(password, login) + * action: login(password, login) * action: logout() */ -// В класс авторизации передавать обьект для управления пользователем +// В класс авторизации передавать обьект для управления пользователем // Вынести в отдельный файл class Filter_Login extends Filter_Filter { @@ -28,8 +28,8 @@ class Filter_Login extends Filter_Filter switch ($request->getAction()) { // Авторизация по постоянному паролю - case 'login': - $login = $request->get('login'); + case 'login': + $login = $request->get('login'); $password = $request->get('password'); $result = Filter_UserAccess::getUserByLogin($login); // Поиск по логину @@ -48,7 +48,7 @@ class Filter_Login extends Filter_Filter if (md5($password) == $userPassword) { // password $this->enter($db, $result); return true; - } + } } $request->set('error', true); break; @@ -57,15 +57,15 @@ class Filter_Login extends Filter_Filter break; // Вход по временному паролю case 'enter': - $login = $request->get('login'); + $login = $request->get('login'); $password = $request->get('sid'); $result = Filter_UserAccess::getUserByLogin($login); // Поиск по логину if ($result) { $temp = md5($result->getString('password') . $result->getString('login') . $result->getString('sid')); - if ($password == $temp) { + if ($password == $temp) { $this->enter($db, $result); return true; - } + } } break; default: @@ -98,13 +98,13 @@ class Filter_Login extends Filter_Filter return md5($rawSign); } - private function enter($db, $result) + private function enter($db, $result) { $this->user = $result; $random = rand(0, 1024 * 1024); $db->executeQuery("UPDATE users SET sid = '$random' WHERE id_user = " . $result->getInt('id_user')); - $_SESSION["group"] = $result->getInt('access'); + $_SESSION["group"] = $result->getInt('access'); $_SESSION["access"] = $result->getInt('id_user'); // id_user $_SESSION["random"] = $random; // id_user $_SESSION[self::SESSION_BROWSER_SIGN_KEYNAME] = $this->getBrowserSign(); @@ -131,13 +131,13 @@ class Filter_Login extends Filter_Filter if ($logged) { return json_encode(array('result' => 'ok', 'message' => "Авторизация успешна")); } else { - return json_encode(array('result' => 'fail', 'message' => "Неправильное имя пользователя или пароль")); + return json_encode(array('result' => 'fail', 'message' => "Неправильное имя пользователя или пароль")); } } if (!$logged) { // Параметры при неправильной авторизации - // Действия по умолчанию !! Возможно переход на форму регистрации + // Действия по умолчанию !! Возможно переход на форму регистрации if ($request->get('mode') == 'ajax') { if (!$this->requestIsWhite($request)) { return json_encode(array('result' => 'fail', 'message' =>"NOT_AUTHORIZED")); @@ -157,7 +157,7 @@ class Filter_Login extends Filter_Filter $text = $this->processor->execute($request); return $text; } - + /* --------------------- * Проверка на попадание реквеста в белый список */ @@ -166,9 +166,11 @@ class Filter_Login extends Filter_Filter $module = $request->get('module'); $action = $request->get('action'); - $file = Path::join(CMS_PATH, 'modules', $module, 'filters', 'white.json'); + $moduleDir = explode('_',$module)[0]; + $file = Path::join(CMS_PATH, 'modules', $moduleDir, 'filters', 'white.json'); if (file_exists($file)) { $whiteList = json_decode(file_get_contents($file), true); + if (in_array($action, $whiteList)) { return true; } @@ -177,4 +179,3 @@ class Filter_Login extends Filter_Filter return false; } } -