web/admin: add tab to show events of a user
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		
							
								
								
									
										77
									
								
								web/src/elements/events/UserEvents.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								web/src/elements/events/UserEvents.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | ||||
| import { t } from "@lingui/macro"; | ||||
| import { customElement, html, property, TemplateResult } from "lit-element"; | ||||
| import { AKResponse } from "../../api/Client"; | ||||
| import { Table, TableColumn } from "../table/Table"; | ||||
| import { Event, EventsApi } from "authentik-api"; | ||||
|  | ||||
| import "../forms/DeleteForm"; | ||||
| import "../Tabs"; | ||||
| import "../buttons/ModalButton"; | ||||
| import "../buttons/SpinnerButton"; | ||||
| import "../buttons/Dropdown"; | ||||
| import "../../pages/events/EventInfo"; | ||||
| import { PAGE_SIZE } from "../../constants"; | ||||
| import { DEFAULT_CONFIG } from "../../api/Config"; | ||||
| import { EventWithContext } from "../../api/Events"; | ||||
|  | ||||
| @customElement("ak-events-user") | ||||
| export class ObjectChangelog extends Table<Event> { | ||||
|     expandable = true; | ||||
|  | ||||
|     @property() | ||||
|     order = "-created"; | ||||
|  | ||||
|     @property() | ||||
|     targetUser!: string; | ||||
|  | ||||
|     apiEndpoint(page: number): Promise<AKResponse<Event>> { | ||||
|         return new EventsApi(DEFAULT_CONFIG).eventsEventsList({ | ||||
|             page: page, | ||||
|             ordering: this.order, | ||||
|             pageSize: PAGE_SIZE / 2, | ||||
|             username: this.targetUser | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     columns(): TableColumn[] { | ||||
|         return [ | ||||
|             new TableColumn(t`Action`, "action"), | ||||
|             new TableColumn(t`User`, "enabled"), | ||||
|             new TableColumn(t`Creation Date`, "created"), | ||||
|             new TableColumn(t`Client IP`, "client_ip"), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     row(item: EventWithContext): TemplateResult[] { | ||||
|         return [ | ||||
|             html`${item.action}`, | ||||
|             html`<div>${item.user?.username}</div> | ||||
|             ${item.user.on_behalf_of ? html`<small> | ||||
|                 ${t`On behalf of ${item.user.on_behalf_of.username}`} | ||||
|             </small>` : html``}`, | ||||
|             html`<span>${item.created?.toLocaleString()}</span>`, | ||||
|             html`<span>${item.clientIp || "-"}</span>`, | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     renderExpanded(item: Event): TemplateResult { | ||||
|         return html` | ||||
|         <td role="cell" colspan="4"> | ||||
|             <div class="pf-c-table__expandable-row-content"> | ||||
|                 <ak-event-info .event=${item as EventWithContext}></ak-event-info> | ||||
|             </div> | ||||
|         </td> | ||||
|         <td></td> | ||||
|         <td></td> | ||||
|         <td></td>`; | ||||
|     } | ||||
|  | ||||
|     renderEmpty(): TemplateResult { | ||||
|         return super.renderEmpty(html`<ak-empty-state header=${t`No Events found.`}> | ||||
|             <div slot="body"> | ||||
|                 ${t`No matching events could be found.`} | ||||
|             </div> | ||||
|         </ak-empty-state>`); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -69,6 +69,7 @@ msgid "Access token URL" | ||||
| msgstr "Access token URL" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:38 | ||||
| #: src/elements/events/UserEvents.ts:35 | ||||
| #: src/pages/events/EventListPage.ts:43 | ||||
| #: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:79 | ||||
| msgid "Action" | ||||
| @ -76,7 +77,7 @@ msgstr "Action" | ||||
|  | ||||
| #: src/pages/groups/MemberSelectModal.ts:45 | ||||
| #: src/pages/users/UserListPage.ts:51 | ||||
| #: src/pages/users/UserViewPage.ts:115 | ||||
| #: src/pages/users/UserViewPage.ts:116 | ||||
| msgid "Active" | ||||
| msgstr "Active" | ||||
|  | ||||
| @ -469,7 +470,7 @@ msgstr "Change your password" | ||||
| #: src/pages/sources/ldap/LDAPSourceViewPage.ts:113 | ||||
| #: src/pages/sources/oauth/OAuthSourceViewPage.ts:132 | ||||
| #: src/pages/sources/saml/SAMLSourceViewPage.ts:119 | ||||
| #: src/pages/users/UserViewPage.ts:176 | ||||
| #: src/pages/users/UserViewPage.ts:185 | ||||
| msgid "Changelog" | ||||
| msgstr "Changelog" | ||||
|  | ||||
| @ -536,6 +537,7 @@ msgid "Client ID" | ||||
| msgstr "Client ID" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:41 | ||||
| #: src/elements/events/UserEvents.ts:38 | ||||
| #: src/pages/events/EventListPage.ts:46 | ||||
| #: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:93 | ||||
| msgid "Client IP" | ||||
| @ -831,6 +833,7 @@ msgid "Created {0}" | ||||
| msgstr "Created {0}" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:40 | ||||
| #: src/elements/events/UserEvents.ts:37 | ||||
| #: src/pages/events/EventListPage.ts:45 | ||||
| msgid "Creation Date" | ||||
| msgstr "Creation Date" | ||||
| @ -1031,7 +1034,7 @@ msgstr "Each provider has a different issuer, based on the application slug." | ||||
| #: src/pages/stages/prompt/PromptListPage.ts:75 | ||||
| #: src/pages/user-settings/tokens/UserTokenList.ts:113 | ||||
| #: src/pages/users/UserListPage.ts:76 | ||||
| #: src/pages/users/UserViewPage.ts:146 | ||||
| #: src/pages/users/UserViewPage.ts:147 | ||||
| msgid "Edit" | ||||
| msgstr "Edit" | ||||
|  | ||||
| @ -1064,7 +1067,7 @@ msgstr "Either no applications are defined, or you don't have access to any." | ||||
| #: src/pages/stages/identification/IdentificationStageForm.ts:82 | ||||
| #: src/pages/user-settings/UserDetailsPage.ts:71 | ||||
| #: src/pages/users/UserForm.ts:61 | ||||
| #: src/pages/users/UserViewPage.ts:99 | ||||
| #: src/pages/users/UserViewPage.ts:100 | ||||
| msgid "Email" | ||||
| msgstr "Email" | ||||
|  | ||||
| @ -1224,7 +1227,7 @@ msgstr "Expiry" | ||||
| msgid "Expiry date" | ||||
| msgstr "Expiry date" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:187 | ||||
| #: src/pages/users/UserViewPage.ts:196 | ||||
| msgid "Explicit Consent" | ||||
| msgstr "Explicit Consent" | ||||
|  | ||||
| @ -1624,7 +1627,7 @@ msgstr "Label shown next to/above the prompt." | ||||
|  | ||||
| #: src/pages/groups/MemberSelectModal.ts:46 | ||||
| #: src/pages/users/UserListPage.ts:52 | ||||
| #: src/pages/users/UserViewPage.ts:107 | ||||
| #: src/pages/users/UserViewPage.ts:108 | ||||
| msgid "Last login" | ||||
| msgstr "Last login" | ||||
|  | ||||
| @ -1901,7 +1904,7 @@ msgstr "Monitor" | ||||
| #: src/pages/user-settings/UserDetailsPage.ts:64 | ||||
| #: src/pages/users/UserForm.ts:54 | ||||
| #: src/pages/users/UserListPage.ts:50 | ||||
| #: src/pages/users/UserViewPage.ts:91 | ||||
| #: src/pages/users/UserViewPage.ts:92 | ||||
| msgid "Name" | ||||
| msgstr "Name" | ||||
|  | ||||
| @ -1944,6 +1947,7 @@ msgid "No Applications available." | ||||
| msgstr "No Applications available." | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:68 | ||||
| #: src/elements/events/UserEvents.ts:65 | ||||
| msgid "No Events found." | ||||
| msgstr "No Events found." | ||||
|  | ||||
| @ -1972,6 +1976,7 @@ msgid "No form found" | ||||
| msgstr "No form found" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:70 | ||||
| #: src/elements/events/UserEvents.ts:67 | ||||
| msgid "No matching events could be found." | ||||
| msgstr "No matching events could be found." | ||||
|  | ||||
| @ -2058,11 +2063,11 @@ msgstr "Notifications Transport" | ||||
| msgid "Number" | ||||
| msgstr "Number" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:195 | ||||
| #: src/pages/users/UserViewPage.ts:204 | ||||
| msgid "OAuth Authorization Codes" | ||||
| msgstr "OAuth Authorization Codes" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:203 | ||||
| #: src/pages/users/UserViewPage.ts:212 | ||||
| msgid "OAuth Refresh Codes" | ||||
| msgstr "OAuth Refresh Codes" | ||||
|  | ||||
| @ -2084,6 +2089,7 @@ msgid "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3) | ||||
| msgstr "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)." | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:50 | ||||
| #: src/elements/events/UserEvents.ts:47 | ||||
| #: src/pages/events/EventListPage.ts:60 | ||||
| msgid "On behalf of {0}" | ||||
| msgstr "On behalf of {0}" | ||||
| @ -2182,7 +2188,7 @@ msgstr "Outposts are deployments of authentik components to support different en | ||||
| #: src/pages/sources/ldap/LDAPSourceViewPage.ts:56 | ||||
| #: src/pages/sources/oauth/OAuthSourceViewPage.ts:55 | ||||
| #: src/pages/sources/saml/SAMLSourceViewPage.ts:58 | ||||
| #: src/pages/users/UserViewPage.ts:73 | ||||
| #: src/pages/users/UserViewPage.ts:74 | ||||
| msgid "Overview" | ||||
| msgstr "Overview" | ||||
|  | ||||
| @ -2520,7 +2526,7 @@ msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." | ||||
| msgstr "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." | ||||
|  | ||||
| #: src/pages/users/UserListPage.ts:133 | ||||
| #: src/pages/users/UserViewPage.ts:164 | ||||
| #: src/pages/users/UserViewPage.ts:165 | ||||
| msgid "Reset Password" | ||||
| msgstr "Reset Password" | ||||
|  | ||||
| @ -3047,7 +3053,7 @@ msgid "Successfully generated certificate-key pair." | ||||
| msgstr "Successfully generated certificate-key pair." | ||||
|  | ||||
| #: src/pages/users/UserListPage.ts:128 | ||||
| #: src/pages/users/UserViewPage.ts:159 | ||||
| #: src/pages/users/UserViewPage.ts:160 | ||||
| msgid "Successfully generated recovery link" | ||||
| msgstr "Successfully generated recovery link" | ||||
|  | ||||
| @ -3178,7 +3184,7 @@ msgstr "Successfully updated user." | ||||
| msgid "Successfully updated {0} {1}" | ||||
| msgstr "Successfully updated {0} {1}" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:125 | ||||
| #: src/pages/users/UserViewPage.ts:126 | ||||
| msgid "Superuser" | ||||
| msgstr "Superuser" | ||||
|  | ||||
| @ -3473,7 +3479,7 @@ msgstr "Up-to-date!" | ||||
| #: src/pages/user-settings/tokens/UserTokenList.ts:105 | ||||
| #: src/pages/users/UserActiveForm.ts:66 | ||||
| #: src/pages/users/UserListPage.ts:68 | ||||
| #: src/pages/users/UserViewPage.ts:138 | ||||
| #: src/pages/users/UserViewPage.ts:139 | ||||
| msgid "Update" | ||||
| msgstr "Update" | ||||
|  | ||||
| @ -3549,7 +3555,7 @@ msgstr "Update Token" | ||||
|  | ||||
| #: src/pages/policies/BoundPoliciesList.ts:102 | ||||
| #: src/pages/users/UserListPage.ts:71 | ||||
| #: src/pages/users/UserViewPage.ts:141 | ||||
| #: src/pages/users/UserViewPage.ts:142 | ||||
| msgid "Update User" | ||||
| msgstr "Update User" | ||||
|  | ||||
| @ -3590,6 +3596,7 @@ msgid "Use global settings" | ||||
| msgstr "Use global settings" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:39 | ||||
| #: src/elements/events/UserEvents.ts:36 | ||||
| #: src/pages/events/EventInfo.ts:83 | ||||
| #: src/pages/events/EventListPage.ts:44 | ||||
| #: src/pages/policies/PolicyBindingForm.ts:140 | ||||
| @ -3603,7 +3610,7 @@ msgstr "Use global settings" | ||||
| msgid "User" | ||||
| msgstr "User" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:77 | ||||
| #: src/pages/users/UserViewPage.ts:78 | ||||
| msgid "User Info" | ||||
| msgstr "User Info" | ||||
|  | ||||
| @ -3619,6 +3626,10 @@ msgstr "User Settings" | ||||
| msgid "User details" | ||||
| msgstr "User details" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:177 | ||||
| msgid "User events" | ||||
| msgstr "User events" | ||||
|  | ||||
| #: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts:99 | ||||
| #: src/pages/stages/identification/IdentificationStageForm.ts:74 | ||||
| msgid "User fields" | ||||
| @ -3633,7 +3644,7 @@ msgid "User password writeback" | ||||
| msgstr "User password writeback" | ||||
|  | ||||
| #: src/pages/policies/BoundPoliciesList.ts:52 | ||||
| #: src/pages/users/UserViewPage.ts:62 | ||||
| #: src/pages/users/UserViewPage.ts:63 | ||||
| msgid "User {0}" | ||||
| msgstr "User {0}" | ||||
|  | ||||
| @ -3661,7 +3672,7 @@ msgstr "Userinfo URL" | ||||
| #: src/pages/stages/identification/IdentificationStageForm.ts:79 | ||||
| #: src/pages/user-settings/UserDetailsPage.ts:57 | ||||
| #: src/pages/users/UserForm.ts:47 | ||||
| #: src/pages/users/UserViewPage.ts:83 | ||||
| #: src/pages/users/UserViewPage.ts:84 | ||||
| msgid "Username" | ||||
| msgstr "Username" | ||||
|  | ||||
|  | ||||
| @ -69,6 +69,7 @@ msgid "Access token URL" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:38 | ||||
| #: src/elements/events/UserEvents.ts:35 | ||||
| #: src/pages/events/EventListPage.ts:43 | ||||
| #: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:79 | ||||
| msgid "Action" | ||||
| @ -76,7 +77,7 @@ msgstr "" | ||||
|  | ||||
| #: src/pages/groups/MemberSelectModal.ts:45 | ||||
| #: src/pages/users/UserListPage.ts:51 | ||||
| #: src/pages/users/UserViewPage.ts:115 | ||||
| #: src/pages/users/UserViewPage.ts:116 | ||||
| msgid "Active" | ||||
| msgstr "" | ||||
|  | ||||
| @ -465,7 +466,7 @@ msgstr "" | ||||
| #: src/pages/sources/ldap/LDAPSourceViewPage.ts:113 | ||||
| #: src/pages/sources/oauth/OAuthSourceViewPage.ts:132 | ||||
| #: src/pages/sources/saml/SAMLSourceViewPage.ts:119 | ||||
| #: src/pages/users/UserViewPage.ts:176 | ||||
| #: src/pages/users/UserViewPage.ts:185 | ||||
| msgid "Changelog" | ||||
| msgstr "" | ||||
|  | ||||
| @ -530,6 +531,7 @@ msgid "Client ID" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:41 | ||||
| #: src/elements/events/UserEvents.ts:38 | ||||
| #: src/pages/events/EventListPage.ts:46 | ||||
| #: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:93 | ||||
| msgid "Client IP" | ||||
| @ -825,6 +827,7 @@ msgid "Created {0}" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:40 | ||||
| #: src/elements/events/UserEvents.ts:37 | ||||
| #: src/pages/events/EventListPage.ts:45 | ||||
| msgid "Creation Date" | ||||
| msgstr "" | ||||
| @ -1023,7 +1026,7 @@ msgstr "" | ||||
| #: src/pages/stages/prompt/PromptListPage.ts:75 | ||||
| #: src/pages/user-settings/tokens/UserTokenList.ts:113 | ||||
| #: src/pages/users/UserListPage.ts:76 | ||||
| #: src/pages/users/UserViewPage.ts:146 | ||||
| #: src/pages/users/UserViewPage.ts:147 | ||||
| msgid "Edit" | ||||
| msgstr "" | ||||
|  | ||||
| @ -1056,7 +1059,7 @@ msgstr "" | ||||
| #: src/pages/stages/identification/IdentificationStageForm.ts:82 | ||||
| #: src/pages/user-settings/UserDetailsPage.ts:71 | ||||
| #: src/pages/users/UserForm.ts:61 | ||||
| #: src/pages/users/UserViewPage.ts:99 | ||||
| #: src/pages/users/UserViewPage.ts:100 | ||||
| msgid "Email" | ||||
| msgstr "" | ||||
|  | ||||
| @ -1216,7 +1219,7 @@ msgstr "" | ||||
| msgid "Expiry date" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:187 | ||||
| #: src/pages/users/UserViewPage.ts:196 | ||||
| msgid "Explicit Consent" | ||||
| msgstr "" | ||||
|  | ||||
| @ -1616,7 +1619,7 @@ msgstr "" | ||||
|  | ||||
| #: src/pages/groups/MemberSelectModal.ts:46 | ||||
| #: src/pages/users/UserListPage.ts:52 | ||||
| #: src/pages/users/UserViewPage.ts:107 | ||||
| #: src/pages/users/UserViewPage.ts:108 | ||||
| msgid "Last login" | ||||
| msgstr "" | ||||
|  | ||||
| @ -1893,7 +1896,7 @@ msgstr "" | ||||
| #: src/pages/user-settings/UserDetailsPage.ts:64 | ||||
| #: src/pages/users/UserForm.ts:54 | ||||
| #: src/pages/users/UserListPage.ts:50 | ||||
| #: src/pages/users/UserViewPage.ts:91 | ||||
| #: src/pages/users/UserViewPage.ts:92 | ||||
| msgid "Name" | ||||
| msgstr "" | ||||
|  | ||||
| @ -1936,6 +1939,7 @@ msgid "No Applications available." | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:68 | ||||
| #: src/elements/events/UserEvents.ts:65 | ||||
| msgid "No Events found." | ||||
| msgstr "" | ||||
|  | ||||
| @ -1964,6 +1968,7 @@ msgid "No form found" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:70 | ||||
| #: src/elements/events/UserEvents.ts:67 | ||||
| msgid "No matching events could be found." | ||||
| msgstr "" | ||||
|  | ||||
| @ -2050,11 +2055,11 @@ msgstr "" | ||||
| msgid "Number" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:195 | ||||
| #: src/pages/users/UserViewPage.ts:204 | ||||
| msgid "OAuth Authorization Codes" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:203 | ||||
| #: src/pages/users/UserViewPage.ts:212 | ||||
| msgid "OAuth Refresh Codes" | ||||
| msgstr "" | ||||
|  | ||||
| @ -2076,6 +2081,7 @@ msgid "Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3) | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:50 | ||||
| #: src/elements/events/UserEvents.ts:47 | ||||
| #: src/pages/events/EventListPage.ts:60 | ||||
| msgid "On behalf of {0}" | ||||
| msgstr "" | ||||
| @ -2174,7 +2180,7 @@ msgstr "" | ||||
| #: src/pages/sources/ldap/LDAPSourceViewPage.ts:56 | ||||
| #: src/pages/sources/oauth/OAuthSourceViewPage.ts:55 | ||||
| #: src/pages/sources/saml/SAMLSourceViewPage.ts:58 | ||||
| #: src/pages/users/UserViewPage.ts:73 | ||||
| #: src/pages/users/UserViewPage.ts:74 | ||||
| msgid "Overview" | ||||
| msgstr "" | ||||
|  | ||||
| @ -2512,7 +2518,7 @@ msgid "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserListPage.ts:133 | ||||
| #: src/pages/users/UserViewPage.ts:164 | ||||
| #: src/pages/users/UserViewPage.ts:165 | ||||
| msgid "Reset Password" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3039,7 +3045,7 @@ msgid "Successfully generated certificate-key pair." | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserListPage.ts:128 | ||||
| #: src/pages/users/UserViewPage.ts:159 | ||||
| #: src/pages/users/UserViewPage.ts:160 | ||||
| msgid "Successfully generated recovery link" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3170,7 +3176,7 @@ msgstr "" | ||||
| msgid "Successfully updated {0} {1}" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:125 | ||||
| #: src/pages/users/UserViewPage.ts:126 | ||||
| msgid "Superuser" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3463,7 +3469,7 @@ msgstr "" | ||||
| #: src/pages/user-settings/tokens/UserTokenList.ts:105 | ||||
| #: src/pages/users/UserActiveForm.ts:66 | ||||
| #: src/pages/users/UserListPage.ts:68 | ||||
| #: src/pages/users/UserViewPage.ts:138 | ||||
| #: src/pages/users/UserViewPage.ts:139 | ||||
| msgid "Update" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3539,7 +3545,7 @@ msgstr "" | ||||
|  | ||||
| #: src/pages/policies/BoundPoliciesList.ts:102 | ||||
| #: src/pages/users/UserListPage.ts:71 | ||||
| #: src/pages/users/UserViewPage.ts:141 | ||||
| #: src/pages/users/UserViewPage.ts:142 | ||||
| msgid "Update User" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3580,6 +3586,7 @@ msgid "Use global settings" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/elements/events/ObjectChangelog.ts:39 | ||||
| #: src/elements/events/UserEvents.ts:36 | ||||
| #: src/pages/events/EventInfo.ts:83 | ||||
| #: src/pages/events/EventListPage.ts:44 | ||||
| #: src/pages/policies/PolicyBindingForm.ts:140 | ||||
| @ -3593,7 +3600,7 @@ msgstr "" | ||||
| msgid "User" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:77 | ||||
| #: src/pages/users/UserViewPage.ts:78 | ||||
| msgid "User Info" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3609,6 +3616,10 @@ msgstr "" | ||||
| msgid "User details" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/users/UserViewPage.ts:177 | ||||
| msgid "User events" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts:99 | ||||
| #: src/pages/stages/identification/IdentificationStageForm.ts:74 | ||||
| msgid "User fields" | ||||
| @ -3623,7 +3634,7 @@ msgid "User password writeback" | ||||
| msgstr "" | ||||
|  | ||||
| #: src/pages/policies/BoundPoliciesList.ts:52 | ||||
| #: src/pages/users/UserViewPage.ts:62 | ||||
| #: src/pages/users/UserViewPage.ts:63 | ||||
| msgid "User {0}" | ||||
| msgstr "" | ||||
|  | ||||
| @ -3651,7 +3662,7 @@ msgstr "" | ||||
| #: src/pages/stages/identification/IdentificationStageForm.ts:79 | ||||
| #: src/pages/user-settings/UserDetailsPage.ts:57 | ||||
| #: src/pages/users/UserForm.ts:47 | ||||
| #: src/pages/users/UserViewPage.ts:83 | ||||
| #: src/pages/users/UserViewPage.ts:84 | ||||
| msgid "Username" | ||||
| msgstr "" | ||||
|  | ||||
|  | ||||
| @ -22,7 +22,7 @@ export class LDAPSyncStatusCard extends AdminStatusCard<Task> { | ||||
|     } | ||||
|  | ||||
|     renderValue(): TemplateResult { | ||||
|         return html`${t`Last sync: ${this.value?.taskFinishTimestamp?.toLocaleTimeString()}`}`; | ||||
|         return html`${t`Last sync: ${this.value?.taskFinishTimestamp?.toLocaleTimeString() || "-"}`}`; | ||||
|     } | ||||
|  | ||||
|     getStatus(value: Task): Promise<AdminStatus> { | ||||
|  | ||||
| @ -14,7 +14,6 @@ import PFButton from "@patternfly/patternfly/components/Button/button.css"; | ||||
| import AKGlobal from "../../authentik.css"; | ||||
|  | ||||
| import "../../elements/forms/ModalForm"; | ||||
| import "./UserForm"; | ||||
| import "../../elements/buttons/ActionButton"; | ||||
| import "../../elements/buttons/SpinnerButton"; | ||||
| import "../../elements/CodeMirror"; | ||||
| @ -25,6 +24,8 @@ import "../../elements/oauth/UserCodeList"; | ||||
| import "../../elements/oauth/UserRefreshList"; | ||||
| import "../../elements/charts/UserChart"; | ||||
| import "../../elements/PageHeader"; | ||||
| import "../../elements/events/UserEvents"; | ||||
| import "./UserForm"; | ||||
| import { CoreApi, User } from "authentik-api"; | ||||
| import { DEFAULT_CONFIG } from "../../api/Config"; | ||||
| import { EVENT_REFRESH } from "../../constants"; | ||||
| @ -75,7 +76,7 @@ export class UserViewPage extends LitElement { | ||||
|         return html`<ak-tabs> | ||||
|                 <section slot="page-overview" data-tab-title="${t`Overview`}" class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||
|                     <div class="pf-l-gallery pf-m-gutter"> | ||||
|                         <div class="pf-c-card pf-l-gallery__item pf-m-4-col"> | ||||
|                         <div class="pf-c-card pf-l-gallery__item"> | ||||
|                             <div class="pf-c-card__title"> | ||||
|                                 ${t`User Info`} | ||||
|                             </div> | ||||
| @ -167,7 +168,7 @@ export class UserViewPage extends LitElement { | ||||
|                                 </ak-action-button> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                         <div class="pf-c-card pf-l-gallery__item pf-m-4-col" style="grid-column-end: span 4;grid-row-end: span 2;"> | ||||
|                         <div class="pf-c-card pf-l-gallery__item" style="grid-column-end: span 4;grid-row-end: span 2;"> | ||||
|                             <div class="pf-c-card__body"> | ||||
|                                 <ak-charts-user userId=${this.user.pk || 0}> | ||||
|                                 </ak-charts-user> | ||||
| @ -175,6 +176,14 @@ export class UserViewPage extends LitElement { | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </section> | ||||
|                 <section slot="page-events" data-tab-title="${t`User events`}" class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||
|                     <div class="pf-c-card"> | ||||
|                         <div class="pf-c-card__body"> | ||||
|                             <ak-events-user targetUser=${this.user.username}> | ||||
|                             </ak-events-user> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </section> | ||||
|                 <section slot="page-changelog" data-tab-title="${t`Changelog`}" class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||
|                     <div class="pf-c-card"> | ||||
|                         <div class="pf-c-card__body"> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer