| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/project-slim/app/Middleware/ |
Upload File : |
<?php
namespace App\Middleware;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
class AdminMiddleware
{
/**
* Admin authorization middleware
*/
public function __invoke(Request $request, RequestHandler $handler): Response
{
// Get user from request attributes (set by AuthMiddleware)
$user = $request->getAttribute('user');
if (!$user) {
$response = new \Slim\Psr7\Response();
$response->getBody()->write(json_encode([
'status' => 'error',
'message' => 'Authentication required'
]));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(401);
}
// Check if user has admin role
// TODO: Implement proper role checking
$userRole = $user->role ?? 'user';
if ($userRole !== 'admin' && $userRole !== 'super_admin') {
$response = new \Slim\Psr7\Response();
$response->getBody()->write(json_encode([
'status' => 'error',
'message' => 'Admin privileges required'
]));
return $response
->withHeader('Content-Type', 'application/json')
->withStatus(403);
}
return $handler->handle($request);
}
}