1
0

index request works almost

This commit is contained in:
2020-01-15 01:46:31 +01:00
parent 114e93d09e
commit f9a692e635
7 changed files with 112 additions and 147 deletions

View File

@@ -5,13 +5,13 @@ require_once "website.php";
class RuleEngine
{
/**
* @param Website $app
* @param Website $site
* @param array $urlConfig
* @return URLRoute
*/
public static function findRoute(Website $app, array $urlConfig): URLRoute
public static function findRoute(Website $site, array $urlConfig): URLRoute
{
if ($app->isProd())
if ($site->isProd())
$requri = $_SERVER['REQUEST_URI'];
else
$requri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : 'localhost:80/';
@@ -24,16 +24,18 @@ class RuleEngine
foreach ($urlConfig as $rule)
{
$route = self::testRule($app, $rule, $requri, $pathparts, $partcount);
$route = self::testRule($site, $rule, $requri, $pathparts, $partcount);
if ($route === null) continue;
if ($route->needsAdminLogin && !$app->isLoggedIn()) return URLRoute::getLoginRoute($route, $requri);
if ($route->needsAdminLogin && !$site->isLoggedInByCookie()) return URLRoute::getLoginRoute($route, $requri);
return $route;
}
return URLRoute::getNotFoundRoute($requri);
}
private static function testRule(Website $app, array $rule, string $requri, array $pathparts, int $partcount)
private static function testRule(Website $site, array $rule, string $requri, array $pathparts, int $partcount)
{
if ($partcount !== count($rule['url'])) return null;
@@ -95,7 +97,7 @@ class RuleEngine
$route->needsAdminLogin = isset($ctrlOpt['password']);
if ($app->isProd() && isHTTPRequest() && !in_array('http', $ctrlOpt))
if ($site->isProd() && isHTTPRequest() && !in_array('http', $ctrlOpt))
{
// enforce https
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];