tenant = Tenant::withTrashed()->findOrFail($managedTenant); $user = auth()->user(); if (! $user instanceof User) { abort(403); } /** @var CapabilityResolver $resolver */ $resolver = app(CapabilityResolver::class); if (! $resolver->isMember($user, $this->tenant)) { abort(404); } if (! $resolver->can($user, $this->tenant, Capabilities::TENANT_MANAGED_TENANTS_VIEW)) { abort(403); } if (! $this->tenant->isActive()) { ManagedTenantContext::setArchivedTenant($this->tenant); $this->redirect(ArchivedStatus::getUrl()); } } /** * @return array */ protected function getHeaderActions(): array { return [ UiEnforcement::forTableAction( Action::make('open') ->label('Open') ->icon('heroicon-o-arrow-top-right-on-square') ->url(fn (): string => "/admin/managed-tenants/{$this->tenant->getKey()}/open"), fn () => $this->tenant, ) ->requireCapability(Capabilities::TENANT_MANAGED_TENANTS_VIEW) ->apply(), UiEnforcement::forTableAction( Action::make('edit') ->label('Edit') ->url(fn (): string => EditManagedTenant::getUrl(['managedTenant' => $this->tenant])), fn () => $this->tenant, ) ->requireCapability(Capabilities::TENANT_MANAGED_TENANTS_MANAGE) ->apply(), ]; } }