[EC-449] Event log user for SCIM events (#3643)

* [EC-449] Added EventSystemUser Enum and added systemUser property to eventResponse

* [EC-449] Add systemUser property to BaseEventsComponent, EventExport and EventView

* [EC-449] Set EventSystemUser as string on EventExport

* [EC-449] Remove systemUser from EventExport

* [EC-449] Rename EventSystemUser file to lowercase

* [EC-449] Force git to rename EventSystemUser file

* [EC-449] Rename EventSystemUser file to event-system-user.ts

* [EC-449] Fix EventSystemUser reference on EventsComponent

* [EC-449] Move installationId username logic to BaseEventsComponent

* Update libs/common/src/enums/event-system-user.ts

Add a note to warn about using the Enum key in the UI.

Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>

* [EC-449] Remove EventSystemUser from provider events. Remove nested condition on events component

Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
This commit is contained in:
Rui Tomé 2022-11-09 12:13:37 +00:00 committed by GitHub
parent 4813320abc
commit c2bf6a6700
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 10 deletions

View File

@ -132,12 +132,13 @@ export abstract class BaseEventsComponent {
appIcon: eventInfo.appIcon,
appName: eventInfo.appName,
userId: userId,
userName: r.installationId != null ? `Installation: ${r.installationId}` : userName,
userName: userName,
userEmail: user != null ? user.email : "",
date: r.date,
ip: r.ipAddress,
type: r.type,
installationId: r.installationId,
systemUser: r.systemUser,
});
})
);

View File

@ -11,6 +11,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service";
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
import { ProviderService } from "@bitwarden/common/abstractions/provider.service";
import { EventSystemUser } from "@bitwarden/common/enums/event-system-user";
import { Organization } from "@bitwarden/common/models/domain/organization";
import { EventResponse } from "@bitwarden/common/models/response/event.response";
@ -114,17 +115,25 @@ export class EventsComponent extends BaseEventsComponent implements OnInit, OnDe
}
protected getUserName(r: EventResponse, userId: string) {
if (userId == null) {
return null;
if (r.installationId != null) {
return `Installation: ${r.installationId}`;
}
if (this.orgUsersUserIdMap.has(userId)) {
return this.orgUsersUserIdMap.get(userId);
if (userId != null) {
if (this.orgUsersUserIdMap.has(userId)) {
return this.orgUsersUserIdMap.get(userId);
}
if (r.providerId != null && r.providerId === this.organization.providerId) {
return {
name: this.organization.providerName,
};
}
}
if (r.providerId != null && r.providerId === this.organization.providerId) {
if (r.systemUser != null) {
return {
name: this.organization.providerName,
name: EventSystemUser[r.systemUser],
};
}

View File

@ -82,8 +82,14 @@ export class EventsComponent extends BaseEventsComponent implements OnInit {
}
protected getUserName(r: EventResponse, userId: string) {
return userId != null && this.providerUsersUserIdMap.has(userId)
? this.providerUsersUserIdMap.get(userId)
: null;
if (r.installationId != null) {
return `Installation: ${r.installationId}`;
}
if (userId != null && this.providerUsersUserIdMap.has(userId)) {
return this.providerUsersUserIdMap.get(userId);
}
return null;
}
}

View File

@ -0,0 +1,4 @@
// Note: the enum key is used to describe the EventSystemUser in the UI. Be careful about changing it.
export enum EventSystemUser {
SCIM = 1,
}

View File

@ -1,4 +1,5 @@
import { DeviceType } from "../../enums/deviceType";
import { EventSystemUser } from "../../enums/event-system-user";
import { EventType } from "../../enums/eventType";
import { BaseResponse } from "./base.response";
@ -20,6 +21,7 @@ export class EventResponse extends BaseResponse {
deviceType: DeviceType;
ipAddress: string;
installationId: string;
systemUser: EventSystemUser;
constructor(response: any) {
super(response);
@ -39,5 +41,6 @@ export class EventResponse extends BaseResponse {
this.deviceType = this.getResponseProperty("DeviceType");
this.ipAddress = this.getResponseProperty("IpAddress");
this.installationId = this.getResponseProperty("InstallationId");
this.systemUser = this.getResponseProperty("SystemUser");
}
}

View File

@ -1,3 +1,4 @@
import { EventSystemUser } from "../../enums/event-system-user";
import { EventType } from "../../enums/eventType";
export class EventView {
@ -12,6 +13,7 @@ export class EventView {
ip: string;
type: EventType;
installationId: string;
systemUser: EventSystemUser;
constructor(data: Required<EventView>) {
this.message = data.message;
@ -25,5 +27,6 @@ export class EventView {
this.ip = data.ip;
this.type = data.type;
this.installationId = data.installationId;
this.systemUser = data.systemUser;
}
}