Skip to content

Commit

Permalink
Corrige les middlewares (de façon naïve certainement)
Browse files Browse the repository at this point in the history
  • Loading branch information
polosson authored and Donov4n committed May 1, 2021
1 parent 391b3a8 commit df81b73
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 29 deletions.
31 changes: 18 additions & 13 deletions server/phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
<phpunit bootstrap="tests/bootstrap.php">
<?xml version="1.0"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="tests/bootstrap.php"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
>
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">src/App</directory>
</include>
<exclude>
<file>src/App/Config/database.dist.php</file>
<file>src/App/Config/settings.dist.php</file>
<file>src/App/Config/constants.php</file>
<file>src/App/Controllers/EntryController.php</file>
<file>src/App/Controllers/SetupController.php</file>
</exclude>
</coverage>
<testsuites>
<testsuite name="other">
<directory>tests/other</directory>
Expand All @@ -13,16 +30,4 @@
<directory>tests/endpoints</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src/App</directory>
<exclude>
<file>src/App/Config/database.dist.php</file>
<file>src/App/Config/settings.dist.php</file>
<file>src/App/Config/constants.php</file>
<file>src/App/Controllers/EntryController.php</file>
<file>src/App/Controllers/SetupController.php</file>
</exclude>
</whitelist>
</filter>
</phpunit>
2 changes: 1 addition & 1 deletion server/src/App/Config/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ class Config
];

/** @var string|null La version de l'application, mise en "cache". */
private $versionCached;
private static $versionCached;

public static function getSettings(?string $setting = null)
{
Expand Down
16 changes: 9 additions & 7 deletions server/src/App/Middlewares/Acl.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,29 @@

use Robert2\API\Config;
use Robert2\API\Services\Auth;
use Slim\Http\ServerRequest as Request;
use Slim\Http\Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;

class Acl
{
public function __invoke(Request $request, Response $response, callable $next)
public function __invoke(Request $request, RequestHandler $handler)
{
$response = $handler->handle($request);

if ($request->isOptions()) {
return $next($request, $response);
return $response;
}

$currentRoute = $this->_getCurrentRoute($request);
if (!preg_match('/^\/?api\//', $currentRoute)) {
return $next($request, $response);
return $response;
}

$groupId = Auth::isAuthenticated() ? Auth::user()->group_id : 'visitor';
$method = strtolower($request->getMethod());
$deniedRoutes = $this->_getDeniedRoutes($groupId, $method);
if (empty($deniedRoutes)) {
return $next($request, $response);
return $response;
}

$currentRoute = preg_replace('/^\/api/', '', $currentRoute) . '[/]';
Expand All @@ -37,7 +39,7 @@ public function __invoke(Request $request, Response $response, callable $next)
]);
}

return $next($request, $response);
return $response;
}

protected function _getCurrentRoute(Request $request): string
Expand Down
10 changes: 6 additions & 4 deletions server/src/App/Middlewares/Pagination.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,21 @@
namespace Robert2\API\Middlewares;

use Illuminate\Pagination\Paginator;
use Slim\Http\ServerRequest as Request;
use Slim\Http\Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;

class Pagination
{
public function __invoke(Request $request, Response $response, callable $next)
public function __invoke(Request $request, RequestHandler $handler)
{
$response = $handler->handle($request);

Paginator::currentPageResolver(
function () use ($request) {
return $request->getParam('page');
}
);

return $next($request, $response);
return $response;
}
}
11 changes: 7 additions & 4 deletions server/src/App/Services/Auth.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
use Robert2\API\Config\Acl;
use Robert2\API\Services\Auth\AuthenticatorInterface;
use Robert2\API\Models\User;
use Slim\Http\ServerRequest as Request;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use Slim\Http\Response;

final class Auth
Expand All @@ -27,18 +28,20 @@ public function __construct(array $authenticators = [])
$this->authenticators = $authenticators;
}

public function middleware(Request $request, Response $response, callable $next)
public function middleware(Request $request, RequestHandler $handler)
{
$response = $handler->handle($request);

if (!$this->needsAuthentication($request)) {
$this->retrieveUser($request);
return $next($request, $response);
return $response;
}

if (!$this->retrieveUser($request)) {
return $this->unauthenticated($request, $response);
}

return $next($request, $response);
return $response;
}

public function logout()
Expand Down

0 comments on commit df81b73

Please sign in to comment.