1
0

Admin.php 876 B

123456789101112131415161718192021222324252627
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Middleware;
  4. use App\Services\Auth as AuthService;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. use Psr\Http\Message\ResponseInterface;
  7. use Psr\Http\Server\MiddlewareInterface;
  8. use Psr\Http\Server\RequestHandlerInterface;
  9. use Slim\Factory\AppFactory;
  10. final class Admin implements MiddlewareInterface
  11. {
  12. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  13. {
  14. $user = AuthService::getUser();
  15. if (!$user->isLogin) {
  16. return AppFactory::determineResponseFactory()->createResponse(302)->withHeader('Location', '/auth/login');
  17. }
  18. if (!$user->is_admin) {
  19. return AppFactory::determineResponseFactory()->createResponse(302)->withHeader('Location', '/user');
  20. }
  21. return $handler->handle($request);
  22. }
  23. }