Edit File: CheckRoleMiddleware.php
<?php namespace App\Http\Middleware\Admin; use App\Models\Permission; use App\Models\Role; use App\Traits\ResponseTrait; use Closure; use Illuminate\Support\Facades\Route; class CheckRoleMiddleware { use ResponseTrait; public function handle($request, Closure $next) { $role_id = auth()->guard('admin')->user()->role_id; $permissions = Permission::where('role_id', $role_id) ->pluck('permission') ->toArray(); $role = Role::find($role_id); if (!isset($role)){ auth()->logout(); return redirect(route('admin.login')); } // dd($permissions); $lang = session()->get('lang') != '' ? session()->get('lang') : 'ar'; app()->setLocale($lang); if (!in_array(Route::currentRouteName(), $permissions) && Route::currentRouteName() != 'admin.dashboard') { $msg = trans('auth.not_authorized'); if ($request->ajax()) { return $this->unauthorizedReturn(['type' => 'notAuth']); } if (!count($permissions)) { session()->invalidate(); session()->regenerateToken(); return redirect(route('admin.login')); } // abort_if(in_array(Route::currentRouteName(),$permissions) == false, '550'); session()->flash('danger', $msg); return redirect(url('admin/dashboard')); } return $next($request); } }
Back to File Manager