appService = $appService; } #[Computed] public function providers() { return ConnectionProvider::query()->get(); } #[Computed] public function protocols(): Collection { $protocolService = app(ConnectionProtocolService::class); return $protocolService ->getAll() ->map(function (ConnectionProtocol $protocol) { $protocol->name = strtoupper($protocol->name); return $protocol; }); } /** * @returns DataCollection */ #[Computed] public function connectionStatuses(): DataCollection { $statusService = app(ConnectionStatusService::class); return $statusService ->getAll() ->map(function (ConnectionStatusData $status) { if ($status->name === ConnectionStatusEnum::Disconnected) { $this->form->statusId = $status->id; } return $status; }); } #[Computed] public function isSaml(): bool { $protocol = $this->protocols()->firstWhere( "id", (int) $this->form->protocolId, ); return $protocol && strtolower($protocol->name) === "saml"; } public function save(bool $goBack = true): void { $this->form->validate(); $settings = null; if ($this->isSaml()) { $settings = [ "saml" => [ "entity_id" => $this->form->samlEntityId, "acs_url" => $this->form->samlAcsUrl, ], ]; } $data = new ConnectAppRequest( name: $this->form->name, connectionProviderId: $this->form->providerId, connectionProtocolId: $this->form->protocolId, slug: str($this->form->name)->slug()->toString(), connectionStatusId: $this->form->statusId, settings: $settings, ); $this->attempt( action: function () use ($data, $goBack) { $this->appService->create($data); $this->form->reset(); if ($goBack) { $this->goBack(); } }, ); } public function create() {} public function goBack(): void { $this->redirectRoute("apps.index", navigate: true); } }; ?>
@if($this->isSaml)

SAML Configuration

@endif
Cancel Save & Add Another Save