/**
  * Handle an incoming request.
  *
  * @param \Illuminate\Http\Request $request
  * @param \Closure                 $next
  * @param string                   $type
  *
  * @return mixed
  */
 public function handle($request, Closure $next, $type)
 {
     if (!$this->typeResolver->hasType($this->tenant->getTenantCreator(), $type)) {
         return redirect()->route('tenant.tenant_type_not_supported', ['type' => $type]);
     }
     return $next($request);
 }
 /**
  * @param QueryBuilder $qb
  * @param string       $alias
  */
 protected function applyUserSecurityModel(QueryBuilder $qb, $alias)
 {
     $user = $this->tenant->getUser();
     if ($user instanceof BelongsToTenantParticipants) {
         $tenants = $user->getTenantParticipants();
     } else {
         $tenants = new ArrayCollection([$this->tenant->getTenantCreator()]);
     }
     $qb->where("{$alias}.tenantOwnerId = :tenantOwnerId")->andWhere("{$alias}.tenantCreatorId IN (:tenantCreators)")->setParameters([':tenantOwnerId' => $this->tenant->getTenantOwnerId(), ':tenantCreators' => $tenants]);
 }