예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure                 $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if ($this->auth->guest()) {
         if ($request->ajax()) {
             return response('Unauthorized.', 401);
         } else {
             return redirect()->guest('auth/login');
         }
     } elseif (session('role_id') == 3) {
         $route = $request->route();
         $routeName = $route->getName();
         if ($routeName == 'activity.show') {
             $activityId = $route->getParameter('activity');
             $orgId = Activity::select('organization_id')->find($activityId)->organization_id;
         } elseif ($routeName == 'organization.show') {
             $orgId = $route->getParameter('organization');
         } else {
             $orgId = session('org_id');
         }
         if ($orgId && $this->auth->user()->isSuperAdmin()) {
             $userId = User::select('id')->where('org_id', $orgId)->where('role_id', 1)->first()->id;
             app(OrganizationController::class)->masqueradeOrganization($orgId, $userId);
         } elseif (!$orgId && !isSuperAdminRoute()) {
             return redirect(config('app.super_admin_dashboard'));
         }
     } elseif (isSuperAdminRoute()) {
         $response = ['type' => 'warning', 'code' => ['message', ['message' => "You don't have correct privilege"]]];
         return redirect(config('app.admin_dashboard'))->withResponse($response);
     }
     return $next($request);
 }