IsAdminMiddleware.php 815 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace Middlewares;
  3. use Src\Auth\Auth;
  4. use Src\Request;
  5. use Src\Settings;
  6. class IsAdminMiddleware
  7. {
  8. public function handle(Request $request)
  9. {
  10. // Перенаправляет на главную страницу, если не админ пытается выполнить админское действие
  11. $isAdmin = Auth::isAdmin();
  12. $url = $request->url;
  13. $allUris = Settings::getUris();
  14. $urlsForAdmin = [];
  15. foreach ($allUris as $uri) {
  16. $explodedUri = explode('.', $uri);
  17. if ($explodedUri[0] === 'admin') array_push($urlsForAdmin, $explodedUri[1]);
  18. }
  19. if (in_array($url, $urlsForAdmin)) {
  20. if (!$isAdmin) {
  21. app()->route->redirect('/hello');
  22. }
  23. }
  24. }
  25. }