diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts b/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts index 23d21a9cc15f..6c431a5372a1 100644 --- a/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts +++ b/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts @@ -175,7 +175,7 @@ export class OAuth2ProviderViewPage extends AKElement { `}
diff --git a/web/src/admin/providers/ssf/SSFProviderViewPage.ts b/web/src/admin/providers/ssf/SSFProviderViewPage.ts index 57ce48cec402..aac85aa14d5f 100644 --- a/web/src/admin/providers/ssf/SSFProviderViewPage.ts +++ b/web/src/admin/providers/ssf/SSFProviderViewPage.ts @@ -1,5 +1,6 @@ import "@goauthentik/admin/providers/RelatedApplicationButton"; import "@goauthentik/admin/providers/ssf/SSFProviderFormPage"; +import "@goauthentik/admin/providers/ssf/StreamTable"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EVENT_REFRESH } from "@goauthentik/common/constants"; import "@goauthentik/components/events/ObjectChangelog"; @@ -112,9 +113,7 @@ export class SSFProviderViewPage extends AKElement { return html`
-
+
@@ -131,7 +130,12 @@ export class SSFProviderViewPage extends AKElement {
- ${this.provider.ssfUrl} +
@@ -149,6 +153,10 @@ export class SSFProviderViewPage extends AKElement {
+
+ + +
`; } } diff --git a/web/src/admin/providers/ssf/StreamTable.ts b/web/src/admin/providers/ssf/StreamTable.ts new file mode 100644 index 000000000000..989a2cd95a3b --- /dev/null +++ b/web/src/admin/providers/ssf/StreamTable.ts @@ -0,0 +1,50 @@ +import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import "@goauthentik/elements/buttons/SpinnerButton"; +import "@goauthentik/elements/forms/DeleteBulkForm"; +import "@goauthentik/elements/forms/ModalForm"; +import "@goauthentik/elements/forms/ProxyForm"; +import { PaginatedResponse } from "@goauthentik/elements/table/Table"; +import { Table, TableColumn } from "@goauthentik/elements/table/Table"; +import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; + +import { msg } from "@lit/localize"; +import { TemplateResult, html } from "lit"; +import { customElement, property } from "lit/decorators.js"; + +import { SSFStream, SsfApi } from "@goauthentik/api"; + +@customElement("ak-provider-ssf-stream-list") +export class SSFProviderStreamList extends Table { + searchEnabled(): boolean { + return true; + } + checkbox = true; + clearOnRefresh = true; + + @property({ type: Number }) + providerId?: number; + + @property() + order = "name"; + + async apiEndpoint(): Promise> { + return new SsfApi(DEFAULT_CONFIG).ssfStreamsList({ + provider: this.providerId, + ...(await this.defaultEndpointConfig()), + }); + } + + columns(): TableColumn[] { + return [new TableColumn(msg("Audience"), "aud")]; + } + + row(item: SSFStream): TemplateResult[] { + return [html`${item.aud}`]; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ak-provider-ssf-stream-list": SSFProviderStreamList; + } +}