/** * 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]); }