From: Vincent Vanwaelscappel Date: Fri, 25 Oct 2019 13:35:21 +0000 (+0200) Subject: done #3161 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=dff763257cc48350dc120e71fb59ede112e9cb36;p=cubist_cms-back.git done #3161 @1 --- diff --git a/src/app/Middleware/CubistMiddleware.php b/src/app/Middleware/CubistMiddleware.php new file mode 100644 index 0000000..be0e7ba --- /dev/null +++ b/src/app/Middleware/CubistMiddleware.php @@ -0,0 +1,60 @@ +can($permission); + + } + + protected function onAdmin() + { + return strpos($this->request->getPathInfo(), '/admin') === 0; + } + + public function handle(Request $request, Closure $next) + { + $this->request = $request; + $this->next = $next; + } + + /** + * @return Response + */ + public function getResponse() + { + if ($this->_response === null) { + $f=$this->next; + $this->_response = $f($this->request); + } + return $this->_response; + } + +} diff --git a/src/app/Middleware/EmailObfuscate.php b/src/app/Middleware/EmailObfuscate.php index 9bb1dde..f033596 100644 --- a/src/app/Middleware/EmailObfuscate.php +++ b/src/app/Middleware/EmailObfuscate.php @@ -8,17 +8,16 @@ use Illuminate\Contracts\Support\Renderable; use Illuminate\Http\Request; use Illuminate\Http\Response; -class EmailObfuscate +class EmailObfuscate extends CubistMiddleware { public function handle(Request $request, Closure $next) { - - $response = $next($request); - - if (strpos($request->getPathInfo(), '/admin') === 0) { - return $response; + parent::handle($request, $next); + if ($this->onAdmin()) { + return $this->getResponse(); } + $response = $this->getResponse(); // Apply logic differently based on the nature of $response. if ($response instanceof Renderable) { $response = $this->obfuscate($response->render()); diff --git a/src/app/Middleware/LocaleSelector.php b/src/app/Middleware/LocaleSelector.php index ef42e2e..6071a2b 100644 --- a/src/app/Middleware/LocaleSelector.php +++ b/src/app/Middleware/LocaleSelector.php @@ -4,17 +4,19 @@ namespace Cubist\Backpack\app\Middleware; use Closure; use Cubist\Backpack\app\Magic\Models\Locale; -use Illuminate\Auth\SessionGuard; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Auth; - -class LocaleSelector -{ +class LocaleSelector extends CubistMiddleware +{ public function handle(Request $request, Closure $next) { + parent::handle($request, $next); + if ($this->onAdmin()) { + return $this->getResponse(); + } + $class = Locale::getLocaleClass(); $localeEntities = $class::orderBy('default', 'DESC')->get(); @@ -35,7 +37,7 @@ class LocaleSelector null === $selectedLocale || !( $locales[$selectedLocale]->enabled || - $this->_isAdmin() + $this->can('backpack_translation') ) ) { $domain = $this->_getDomainByLocale($locales[$defaultLocale]); @@ -50,7 +52,7 @@ class LocaleSelector $this->setLocale($selectedLocale); - return $next($request); + return $this->getResponse(); } public function setLocale($locale) @@ -101,13 +103,5 @@ class LocaleSelector return $map[$httpdomain] ?? null; } - protected function _isAdmin() - { - $user = backpack_user(); - if (null === $user) { - return false; - } - return $user->can('backpack_translation'); - } }