123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace App\Http\Middleware;
- use Closure;
- use Auth;
- use Illuminate\Contracts\Foundation\Application;
- class CheckForMaintenanceMode
- {
- /**
- * The application implementation.
- *
- * @var \Illuminate\Contracts\Foundation\Application
- */
- protected $app;
- /**
- * The URIs that should be reachable while maintenance mode is enabled.
- *
- * @var array
- */
- protected $except = [
- '/admin*','/login','/logout', '/subcategories*', '/subsubcategories*', '/home_categories*', '/aiz-uploader*'
- ];
- /**
- * Create a new middleware instance.
- *
- * @param \Illuminate\Contracts\Foundation\Application $app
- * @return void
- */
- public function __construct(Application $app)
- {
- $this->app = $app;
- }
- /**
- * Handle an incoming request.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @return mixed
- *
- * @throws \Symfony\Component\HttpKernel\Exception\HttpException
- */
- public function handle($request, Closure $next)
- {
- if ($this->app->isDownForMaintenance()){
- if((Auth::check() && Auth::user()->user_type == 'admin') || (Auth::check() && Auth::user()->user_type == 'staff') || $this->inExceptArray($request)) {
- return $next($request);
- }
- else {
- return abort(503);
- }
- }
- return $next($request);
- }
- /**
- * Determine if the request has a URI that should be accessible in maintenance mode.
- *
- * @param \Illuminate\Http\Request $request
- * @return bool
- */
- protected function inExceptArray($request)
- {
- foreach ($this->except as $except) {
- if ($except !== '/') {
- $except = trim($except, '/');
- }
- if ($request->fullUrlIs($except) || $request->is($except)) {
- return true;
- }
- }
- return false;
- }
- }
|