FleetCart/Modules/Core/Http/Middleware/AdminMiddleware.php

58 lines
1.3 KiB
PHP
Raw Normal View History

2023-06-11 12:14:03 +00:00
<?php
namespace Modules\Core\Http\Middleware;
use Closure;
class AdminMiddleware
{
/**
* The routes that should be excluded from verification.
*
* @var array
*/
protected $except = [
'admin.login.*',
'admin.reset.*',
];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return \Illuminate\Http\Response
*/
public function handle($request, Closure $next)
{
if (auth()->check() && auth()->user()->isCustomer()) {
return redirect()->route('account.dashboard.index');
}
if ($this->inExceptArray($request) || auth()->check()) {
return $next($request);
}
return redirect()->guest(route('admin.login'));
}
/**
* Determine if the request URI is in except array.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
protected function inExceptArray($request)
{
foreach ($this->except as $except) {
$routeName = optional($request->route())->getName();
if (preg_match("/{$except}/", $routeName)) {
return true;
}
}
return false;
}
}