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?.username} ${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`-`} `; } }