summaryrefslogtreecommitdiff
path: root/src/Middleware
diff options
context:
space:
mode:
Diffstat (limited to 'src/Middleware')
-rw-r--r--src/Middleware/LegacyMiddleware.php25
-rw-r--r--src/Middleware/RequestHandler.php31
2 files changed, 33 insertions, 23 deletions
diff --git a/src/Middleware/LegacyMiddleware.php b/src/Middleware/LegacyMiddleware.php
index f4d6bbcc..ebf456eb 100644
--- a/src/Middleware/LegacyMiddleware.php
+++ b/src/Middleware/LegacyMiddleware.php
@@ -18,7 +18,6 @@ class LegacyMiddleware implements MiddlewareInterface
'angeltypes',
'api',
'atom',
- 'credits',
'ical',
'login',
'public_dashboard',
@@ -60,6 +59,7 @@ class LegacyMiddleware implements MiddlewareInterface
): ResponseInterface {
global $user;
global $privileges;
+ global $page;
/** @var Request $appRequest */
$appRequest = $this->container->get('request');
@@ -248,11 +248,6 @@ class LegacyMiddleware implements MiddlewareInterface
$title = admin_log_title();
$content = admin_log();
return [$title, $content];
- case 'credits':
- require_once realpath(__DIR__ . '/../../includes/pages/guest_credits.php');
- $title = credits_title();
- $content = guest_credits();
- return [$title, $content];
}
require_once realpath(__DIR__ . '/../../includes/pages/guest_start.php');
@@ -271,27 +266,13 @@ class LegacyMiddleware implements MiddlewareInterface
*/
protected function renderPage($page, $title, $content)
{
- global $user;
- $event_config = EventConfig();
- $parameters = [
- 'key' => (isset($user) ? $user['api_key'] : ''),
- ];
-
- if ($page == 'user_meetings') {
- $parameters['meetings'] = 1;
- }
-
if (!empty($page) && is_int($page)) {
return response($content, (int)$page);
}
return response(view('layouts/app', [
- 'title' => $title,
- 'atom_feed' => ($page == 'news' || $page == 'user_meetings') ? $parameters : [],
- 'menu' => make_menu(),
- 'content' => msg() . $content,
- 'header_toolbar' => header_toolbar(),
- 'event_info' => EventConfig_info($event_config) . ' <br />'
+ 'title' => $title,
+ 'content' => msg() . $content,
]), 200);
}
}
diff --git a/src/Middleware/RequestHandler.php b/src/Middleware/RequestHandler.php
index e1381abf..ebe1ff9e 100644
--- a/src/Middleware/RequestHandler.php
+++ b/src/Middleware/RequestHandler.php
@@ -35,7 +35,7 @@ class RequestHandler implements MiddlewareInterface
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$requestHandler = $request->getAttribute('route-request-handler');
- $requestHandler = $this->resolveMiddleware($requestHandler);
+ $requestHandler = $this->resolveRequestHandler($requestHandler);
if ($requestHandler instanceof MiddlewareInterface) {
return $requestHandler->process($request, $handler);
@@ -47,4 +47,33 @@ class RequestHandler implements MiddlewareInterface
throw new InvalidArgumentException('Unable to process request handler of type ' . gettype($requestHandler));
}
+
+ /**
+ * @param string|callable|MiddlewareInterface|RequestHandlerInterface $handler
+ * @return MiddlewareInterface|RequestHandlerInterface
+ */
+ protected function resolveRequestHandler($handler)
+ {
+ if (is_string($handler) && strpos($handler, '@') !== false) {
+ list($class, $method) = explode('@', $handler, 2);
+ if (!class_exists($class) && !$this->container->has($class)) {
+ $class = sprintf('Engelsystem\\Controllers\\%s', $class);
+ }
+
+ $handler = [$class, $method];
+ }
+
+ if (
+ is_array($handler)
+ && is_string($handler[0])
+ && (
+ class_exists($handler[0])
+ || $this->container->has($handler[0])
+ )
+ ) {
+ $handler[0] = $this->container->make($handler[0]);
+ }
+
+ return $this->resolveMiddleware($handler);
+ }
}