1
0
Fork 0
mirror of synced 2024-10-04 03:54:37 +13:00

Unify create events

This commit is contained in:
adrinr 2023-03-24 15:38:07 +00:00
parent 924c103ccc
commit 31eaa36883
7 changed files with 13 additions and 25 deletions

View file

@ -1,21 +1,10 @@
import { publishEvent } from "../events"
import {
Event,
ScimUserCreatedEvent,
ScimUserDeletedEvent,
ScimUserUpdatedEvent,
} from "@budibase/types"
async function SCIMUserCreated(props: {
userId: string
timestamp?: string | number
}) {
const properties: ScimUserCreatedEvent = {
userId: props.userId,
}
await publishEvent(Event.SCIM_USER_CREATED, properties, props.timestamp)
}
async function SCIMUserUpdated(props: {
userId: string
timestamp?: string | number
@ -34,7 +23,6 @@ async function SCIMUserDeleted(props: { userId: string }) {
}
export default {
SCIMUserCreated,
SCIMUserUpdated,
SCIMUserDeleted,
}

View file

@ -21,6 +21,7 @@ async function created(user: User, timestamp?: number) {
userId: user._id as string,
audited: {
email: user.email,
scim: !!user.scimInfo?.isSync,
},
}
await publishEvent(Event.USER_CREATED, properties, timestamp)

View file

@ -121,6 +121,5 @@ jest.spyOn(events.plugin, "init")
jest.spyOn(events.plugin, "imported")
jest.spyOn(events.plugin, "deleted")
jest.spyOn(events.scim, "SCIMUserCreated")
jest.spyOn(events.scim, "SCIMUserUpdated")
jest.spyOn(events.scim, "SCIMUserDeleted")

View file

@ -186,7 +186,6 @@ export enum Event {
AUDIT_LOGS_DOWNLOADED = "audit_log:downloaded",
// SCIM
SCIM_USER_CREATED = "scim:user:created",
SCIM_USER_UPDATED = "scim:user:updated",
SCIM_USER_DELETED = "scim:user:deleted",
}
@ -199,7 +198,7 @@ export enum Event {
// a user facing event or not.
export const AuditedEventFriendlyName: Record<Event, string | undefined> = {
// USER
[Event.USER_CREATED]: `User "{{ email }}" created`,
[Event.USER_CREATED]: `User "{{ email }}" created{{#if scim}} via SCIM{{/if}}`,
[Event.USER_UPDATED]: `User "{{ email }}" updated`,
[Event.USER_DELETED]: `User "{{ email }}" deleted`,
[Event.USER_PERMISSION_ADMIN_ASSIGNED]: `User "{{ email }}" admin role assigned`,
@ -371,7 +370,6 @@ export const AuditedEventFriendlyName: Record<Event, string | undefined> = {
[Event.AUDIT_LOGS_DOWNLOADED]: undefined,
// SCIM
[Event.SCIM_USER_CREATED]: `SCIM user "{{ email }}" created`,
[Event.SCIM_USER_UPDATED]: `SCIM user "{{ email }}" updated`,
[Event.SCIM_USER_DELETED]: `SCIM user "{{ email }}" deleted`,
}

View file

@ -1,9 +1,5 @@
import { BaseEvent } from "./event"
export interface ScimUserCreatedEvent extends BaseEvent {
userId: string
}
export interface ScimUserUpdatedEvent extends BaseEvent {
userId: string
}

View file

@ -4,6 +4,7 @@ export interface UserCreatedEvent extends BaseEvent {
userId: string
audited: {
email: string
scim: boolean
}
}

View file

@ -243,11 +243,16 @@ describe("/api/global/scim/v2/users", () => {
const res = await postScimUser({ body })
expect(events.scim.SCIMUserCreated).toBeCalledTimes(1)
expect(events.scim.SCIMUserCreated).toBeCalledWith({
userId: res.id,
timestamp: mockedTime.toISOString(),
})
expect(events.user.created).toBeCalledTimes(1)
expect(events.user.created).toBeCalledWith(
expect.objectContaining({
_id: res.id,
createdAt: mockedTime.toISOString(),
scimInfo: expect.objectContaining({
isSync: true,
}),
})
)
})
})
})