Skip to content

Commit

Permalink
[EC-449] Event log user for SCIM events (#3643)
Browse files Browse the repository at this point in the history
* [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>
  • Loading branch information
2 people authored and djsmith85 committed Nov 10, 2022
1 parent 25885c9 commit 8f2fd0d
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 10 deletions.
3 changes: 2 additions & 1 deletion apps/web/src/app/common/base.events.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
});
})
);
Expand Down
21 changes: 15 additions & 6 deletions apps/web/src/app/organizations/manage/events.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";

Expand Down Expand Up @@ -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],
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
4 changes: 4 additions & 0 deletions libs/common/src/enums/event-system-user.ts
Original file line number Diff line number Diff line change
@@ -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,
}
3 changes: 3 additions & 0 deletions libs/common/src/models/response/event.response.ts
Original file line number Diff line number Diff line change
@@ -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";
Expand All @@ -20,6 +21,7 @@ export class EventResponse extends BaseResponse {
deviceType: DeviceType;
ipAddress: string;
installationId: string;
systemUser: EventSystemUser;

constructor(response: any) {
super(response);
Expand All @@ -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");
}
}
3 changes: 3 additions & 0 deletions libs/common/src/models/view/event.view.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { EventSystemUser } from "../../enums/event-system-user";
import { EventType } from "../../enums/eventType";

export class EventView {
Expand All @@ -12,6 +13,7 @@ export class EventView {
ip: string;
type: EventType;
installationId: string;
systemUser: EventSystemUser;

constructor(data: Required<EventView>) {
this.message = data.message;
Expand All @@ -25,5 +27,6 @@ export class EventView {
this.ip = data.ip;
this.type = data.type;
this.installationId = data.installationId;
this.systemUser = data.systemUser;
}
}

0 comments on commit 8f2fd0d

Please sign in to comment.