From f6e9179fde0579947eaf7cf1f62bb3d4d1e0b480 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 10 Apr 2024 16:45:11 +0200 Subject: [PATCH] wip #6857 @1.5 --- .docker/production/dockerterminal.bat | 2 +- app/Http/Middleware/CheckIfAdmin.php | 68 +++++++++++++++++++++++++++ app/Providers/AppServiceProvider.php | 2 +- 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 app/Http/Middleware/CheckIfAdmin.php diff --git a/.docker/production/dockerterminal.bat b/.docker/production/dockerterminal.bat index c19c745..5e641fe 100644 --- a/.docker/production/dockerterminal.bat +++ b/.docker/production/dockerterminal.bat @@ -1,3 +1,3 @@ @echo off cls -ssh -t root@godzilla.cubedesigners.com 'docker exec -it -u bastide-resah bastide-resah /bin/bash' +ssh -t root@cloudatlas.cubedesigners.com 'docker exec -it -u bastide-resah bastide-resah /bin/bash' diff --git a/app/Http/Middleware/CheckIfAdmin.php b/app/Http/Middleware/CheckIfAdmin.php new file mode 100644 index 0000000..da1fa21 --- /dev/null +++ b/app/Http/Middleware/CheckIfAdmin.php @@ -0,0 +1,68 @@ +is_admin == 1); + return true; + } + + /** + * Answer to unauthorized access request. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse + */ + private function respondToUnauthorizedRequest($request) + { + if ($request->ajax() || $request->wantsJson()) { + return response(trans('backpack::base.unauthorized'), 401); + } else { + return redirect()->guest(backpack_url('login')); + } + } + + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @return mixed + */ + public function handle($request, Closure $next) + { + if (backpack_auth()->guest()) { + return $this->respondToUnauthorizedRequest($request); + } + + if (! $this->checkIfUserIsAdmin(backpack_user())) { + return $this->respondToUnauthorizedRequest($request); + } + + return $next($request); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 51590d1..7ce2ac6 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,5 +1,5 @@