diff --git a/src/lib/routes/admin-api/events.test.ts b/src/lib/routes/admin-api/events.test.ts index db37ba9321..bd9778ed5d 100644 --- a/src/lib/routes/admin-api/events.test.ts +++ b/src/lib/routes/admin-api/events.test.ts @@ -116,13 +116,26 @@ test('should anonymise any PII fields, no matter the depth', async () => { new ProjectAccessAddedEvent({ createdBy: 'some@email.com', data: { - groups: [ - { - name: 'test', - project: 'default', + roles: { + 1: { + roleId: 1, + groups: [ + { + id: 4, + }, + ], users: [{ username: testUsername }], }, - ], + }, + }, + preData: { + roles: { + 1: { + roleId: 1, + groups: [], + users: [], + }, + }, }, project: 'default', }), @@ -133,7 +146,7 @@ test('should anonymise any PII fields, no matter the depth', async () => { .expect(200); expect(body.events.length).toBe(1); - expect(body.events[0].data.groups[0].users[0].username).not.toBe( + expect(body.events[0].data.roles[1].users[0].username).not.toBe( testUsername, ); }); diff --git a/src/lib/services/project-service.ts b/src/lib/services/project-service.ts index 78d69b70a1..81be6235a7 100644 --- a/src/lib/services/project-service.ts +++ b/src/lib/services/project-service.ts @@ -664,6 +664,7 @@ export default class ProjectService { groups: usersAndGroups.groups.map(({ id }) => id), users: usersAndGroups.users.map(({ id }) => id), }, + preData: {}, }), ); } @@ -688,9 +689,24 @@ export default class ProjectService { project: projectId, createdBy, data: { - roles, - groups, - users, + roles: roles.reduce((prev, curr) => { + prev[curr] = { + roleId: curr, + groups, + users, + }; + return prev; + }, {}), + }, + preData: { + roles: roles.reduce((prev, curr) => { + prev[curr] = { + roleId: curr, + groups: [], + users: [], + }; + return prev; + }, {}), }, }), ); diff --git a/src/lib/types/events.ts b/src/lib/types/events.ts index 2cc34a588f..ef16e6abe9 100644 --- a/src/lib/types/events.ts +++ b/src/lib/types/events.ts @@ -863,12 +863,17 @@ export class ProjectAccessAddedEvent extends BaseEvent { /** * @param createdBy accepts a string for backward compatibility. Prefer using IUser for standardization */ - constructor(p: { project: string; createdBy: string | IUser; data: any }) { + constructor(p: { + project: string; + createdBy: string | IUser; + data: any; + preData: any; + }) { super(PROJECT_ACCESS_ADDED, p.createdBy); - const { project, data } = p; + const { project, data, preData } = p; this.project = project; this.data = data; - this.preData = null; + this.preData = preData; } }