import "@goauthentik/admin/events/EventInfo"; import { ActionToLabel, EventGeo } from "@goauthentik/admin/events/utils"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { EventWithContext } from "@goauthentik/common/events"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/PageHeader"; import { t } from "@lingui/macro"; import { CSSResult, TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import PFCard from "@patternfly/patternfly/components/Card/card.css"; import PFContent from "@patternfly/patternfly/components/Content/content.css"; import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; import { EventsApi } from "@goauthentik/api"; @customElement("ak-event-view") export class EventViewPage extends AKElement { @property() set eventID(value: string) { new EventsApi(DEFAULT_CONFIG) .eventsEventsRetrieve({ eventUuid: value, }) .then((ev) => { this.event = ev as EventWithContext; }); } @property({ attribute: false }) event!: EventWithContext; static get styles(): CSSResult[] { return [PFBase, PFGrid, PFDescriptionList, PFPage, PFContent, PFCard]; } render(): TemplateResult { if (!this.event) { return html` `; } return html`
${t`Event info`}
${t`Action`}
${ActionToLabel(this.event.action)}
${t`App`}
${this.event.app}
${t`User`}
${this.event.user?.username ? html` ${this.event.user.on_behalf_of ? html` ${t`On behalf of ${this.event.user.on_behalf_of.username}`} ` : html``}` : html`-`}
${t`Created`}
${this.event.created?.toLocaleString()}
${t`Client IP`}
${this.event.clientIp || t`-`}
${EventGeo(this.event)}
${t`Tenant`}
${this.event.tenant?.name || t`-`}
`; } }