v2.0-alpha
This commit is contained in:
@@ -13,7 +13,6 @@ class ApiRoute extends AbstractRoute {
|
||||
}
|
||||
|
||||
public function call(Router $router, array $params): string {
|
||||
$user = $router->getUser();
|
||||
if (empty($params["endpoint"])) {
|
||||
header("Content-Type: text/html");
|
||||
$document = new \Elements\TemplateDocument($router, "swagger.twig");
|
||||
@@ -43,9 +42,11 @@ class ApiRoute extends AbstractRoute {
|
||||
http_response_code(400);
|
||||
$response = createError("Invalid Method");
|
||||
} else {
|
||||
$request = $apiClass->newInstanceArgs(array($user, true));
|
||||
$request->execute();
|
||||
$response = $request->getJsonResult();
|
||||
$request = $apiClass->newInstanceArgs(array($router->getContext(), true));
|
||||
$success = $request->execute();
|
||||
$response = $request->getResult();
|
||||
$response["success"] = $success;
|
||||
$response["msg"] = $request->getLastError();
|
||||
}
|
||||
}
|
||||
} catch (ReflectionException $e) {
|
||||
@@ -55,6 +56,6 @@ class ApiRoute extends AbstractRoute {
|
||||
}
|
||||
|
||||
header("Content-Type: application/json");
|
||||
return $response;
|
||||
return json_encode($response);
|
||||
}
|
||||
}
|
||||
@@ -3,23 +3,24 @@
|
||||
namespace Objects\Router;
|
||||
|
||||
use Driver\Logger\Logger;
|
||||
use Objects\User;
|
||||
use Objects\Context;
|
||||
|
||||
class Router {
|
||||
|
||||
private ?User $user;
|
||||
private Context $context;
|
||||
private Logger $logger;
|
||||
protected array $routes;
|
||||
protected array $statusCodeRoutes;
|
||||
|
||||
public function __construct(?User $user = null) {
|
||||
$this->user = $user;
|
||||
public function __construct(Context $context) {
|
||||
$this->context = $context;
|
||||
$this->routes = [];
|
||||
$this->statusCodeRoutes = [];
|
||||
|
||||
if ($user) {
|
||||
$sql = $context->getSQL();
|
||||
if ($sql) {
|
||||
$this->addRoute(new ApiRoute());
|
||||
$this->logger = new Logger("Router", $user->getSQL());
|
||||
$this->logger = new Logger("Router", $sql);
|
||||
} else {
|
||||
$this->logger = new Logger("Router");
|
||||
}
|
||||
@@ -48,7 +49,7 @@ class Router {
|
||||
if ($route) {
|
||||
return $route->call($this, $params);
|
||||
} else {
|
||||
$req = new \Api\Template\Render($this->user);
|
||||
$req = new \Api\Template\Render($this->context);
|
||||
$res = $req->execute(["file" => "error_document.twig", "parameters" => $params]);
|
||||
if ($res) {
|
||||
return $req->getResult()["html"];
|
||||
@@ -90,13 +91,13 @@ class Router {
|
||||
*/
|
||||
|
||||
namespace Cache;
|
||||
use Objects\User;
|
||||
use Objects\Context;
|
||||
use Objects\Router\Router;
|
||||
|
||||
class RouterCache extends Router {
|
||||
|
||||
public function __construct(User \$user) {
|
||||
parent::__construct(\$user);$routes
|
||||
public function __construct(Context \$context) {
|
||||
parent::__construct(\$context);$routes
|
||||
}
|
||||
}
|
||||
";
|
||||
@@ -109,8 +110,8 @@ class RouterCache extends Router {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getUser(): User {
|
||||
return $this->user;
|
||||
public function getContext(): Context {
|
||||
return $this->context;
|
||||
}
|
||||
|
||||
public function getLogger(): Logger {
|
||||
|
||||
@@ -37,9 +37,9 @@ class StaticFileRoute extends AbstractRoute {
|
||||
}
|
||||
|
||||
$pathInfo = pathinfo($path);
|
||||
if ($router !== null && ($user = $router->getUser()) !== null) {
|
||||
if ($router !== null) {
|
||||
$ext = $pathInfo["extension"] ?? "";
|
||||
if (!$user->getConfiguration()->getSettings()->isExtensionAllowed($ext)) {
|
||||
if (!$router->getContext()->getSettings()->isExtensionAllowed($ext)) {
|
||||
http_response_code(406);
|
||||
echo "<b>Access restricted:</b> Extension '" . htmlspecialchars($ext) . "' not allowed to serve.";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user