workspace = $workspace; } /** * @return Collection */ public function getTenants(): Collection { $user = auth()->user(); if (! $user instanceof User) { return Tenant::query()->whereRaw('1 = 0')->get(); } return $user->tenants() ->where('workspace_id', $this->workspace->getKey()) ->where('status', 'active') ->orderBy('name') ->get(); } public function goToChooseTenant(): void { $this->redirect(ChooseTenant::getUrl()); } public function openTenant(int $tenantId): void { $user = auth()->user(); if (! $user instanceof User) { abort(403); } $tenant = Tenant::query() ->where('status', 'active') ->where('workspace_id', $this->workspace->getKey()) ->whereKey($tenantId) ->first(); if (! $tenant instanceof Tenant) { abort(404); } if (! $user->canAccessTenant($tenant)) { abort(404); } $this->redirect(TenantDashboard::getUrl(tenant: $tenant)); } }