diff --git a/protected/src/classes/example_middleware.php b/protected/src/classes/auth_middleware.php similarity index 53% rename from protected/src/classes/example_middleware.php rename to protected/src/classes/auth_middleware.php index 57b21f0..8cf9cde 100644 --- a/protected/src/classes/example_middleware.php +++ b/protected/src/classes/auth_middleware.php @@ -12,13 +12,15 @@ namespace Project\classes; use \CodeHydrater\http\request as Request; use \CodeHydrater\http\response as Response; -class example_middleware { +class auth_middleware { + public function __invoke(Request $request, Response $response, $next) { - $response = $next($request, $response); + // Example: check session or token + if (! isset($_SESSION['user_id'])) { + $response->set_status_code(403)->set_content("Forbidden: Authentication required."); + return $response; + } - // After controller - $response->set_content($response->get_content() . "\n"); - - return $response; + return $next($request, $response); } } \ No newline at end of file diff --git a/protected/src/classes/route_service_provider.php b/protected/src/classes/route_service_provider.php deleted file mode 100644 index d924679..0000000 --- a/protected/src/classes/route_service_provider.php +++ /dev/null @@ -1,44 +0,0 @@ - - * @copyright (c) 2025, Robert Strutts - * @license MIT - */ -namespace Project\classes; - -use \CodeHydrater\http\service_provider as ServiceProvider; -use \CodeHydrater\http\kernel as Kernel; -use \CodeHydrater\http\request as Request; -use \CodeHydrater\http\response as Response; -use \CodeHydrater\router as Router; -use \CodeHydrater\app as App; - -/** - * Description of route_service_provider - * Setup Router and Controllers - * - * @author Robert Strutts - */ -class route_service_provider extends ServiceProvider { - protected Kernel $kernel; - - public function __construct(Kernel $kernel) { - $this->kernel = $kernel; - } - - public function register(): void { - // Add router middleware - $this->kernel->add_middleware(function (Request $request, Response $response, $next) { - $returned_route = Router::execute($request, $response); - if ($returned_route["found"] === false) { - $app = new App(); - return $app->load_controller($request, $response); - } else { - return $returned_route['returned']; - } - }); - } -} diff --git a/protected/src/controllers/app/protected_ctrl.php b/protected/src/controllers/app/protected_ctrl.php new file mode 100644 index 0000000..a9f55ec --- /dev/null +++ b/protected/src/controllers/app/protected_ctrl.php @@ -0,0 +1,31 @@ + + * @copyright (c) 2025, Robert Strutts + * @license MIT + */ +namespace Project\controllers\app; +use \CodeHydrater\http\request as Request; +use \CodeHydrater\http\response as Response; + +/** + * Description of protected_ctrl + * + * @author Robert Strutts + */ +class protected_ctrl { + + public static array $middleware = [ + \Project\classes\auth_middleware::class + ]; + + public function __construct(private Request $request, private Response $response) { } + + public function index(): Response { + $this->response->set_content("Coool!"); + return $this->response; + } +} diff --git a/public/index.php b/public/index.php index 4b2e18b..e6a34a3 100644 --- a/public/index.php +++ b/public/index.php @@ -27,10 +27,7 @@ function dd($var = 'nothing', $end = true) { $kernel = new \CodeHydrater\http\kernel(); // Register service providers -$kernel->register_service_provider(Project\classes\route_service_provider::class); - -// Register global middleware -//$kernel->add_middleware(Project\classes\example_middleware::class); +$kernel->register_service_provider(CodeHydrater\http\route_service_provider::class); // Run $kernel->run(); \ No newline at end of file