Merge branch 'feature/audit-logs' into audit-logs/local-provider

This commit is contained in:
Rémi de Juvigny 2022-12-21 18:39:43 +01:00 committed by GitHub
commit 7ba3793517
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 5 deletions

View File

@ -22,6 +22,12 @@ const defaultEvents = [
'component.create',
'component.update',
'component.delete',
'role.create',
'role.update',
'role.delete',
'permission.create',
'permission.update',
'permission.delete',
];
const getEventMap = (defaultEvents) => {

View File

@ -4,6 +4,7 @@ const _ = require('lodash');
const roleService = require('../role');
const { SUPER_ADMIN_CODE } = require('../constants');
const { create: createPermission, toPermission } = require('../../domain/permission');
const createEventHub = require('../../../../strapi/lib/services/event-hub');
describe('Role', () => {
describe('create', () => {
@ -13,6 +14,7 @@ describe('Role', () => {
global.strapi = {
query: () => ({ create: dbCreate, count: dbCount }),
eventHub: createEventHub(),
};
const input = {
@ -137,6 +139,7 @@ describe('Role', () => {
global.strapi = {
query: () => ({ update: dbUpdate, count: dbCount }),
eventHub: createEventHub(),
};
const updatedRole = await roleService.update(
@ -172,6 +175,7 @@ describe('Role', () => {
query: () => ({ find: dbFind, findOne: dbFindOne, update: dbUpdate }),
admin: { config: { superAdminCode: SUPER_ADMIN_CODE } },
errors: { badRequest },
eventHub: createEventHub(),
};
await roleService.update({ id: 1 }, { code: 'new_code' });
@ -223,6 +227,7 @@ describe('Role', () => {
},
config: { superAdminCode: SUPER_ADMIN_CODE },
},
eventHub: createEventHub(),
};
const deletedRoles = await roleService.deleteByIds([role.id]);
@ -275,6 +280,7 @@ describe('Role', () => {
},
config: { superAdminCode: SUPER_ADMIN_CODE },
},
eventHub: createEventHub(),
};
const deletedRoles = await roleService.deleteByIds(rolesIds);
@ -456,6 +462,7 @@ describe('Role', () => {
user: { assignARoleToAll },
},
},
eventHub: createEventHub(),
};
await roleService.createRolesIfNoneExist();
@ -656,6 +663,7 @@ describe('Role', () => {
role: { getSuperAdmin },
},
},
eventHub: createEventHub(),
};
await roleService.resetSuperAdminPermissions();
@ -689,6 +697,7 @@ describe('Role', () => {
role: { getSuperAdmin },
},
},
eventHub: createEventHub(),
};
await roleService.assignPermissions(1, []);
@ -724,6 +733,7 @@ describe('Role', () => {
},
},
},
eventHub: createEventHub(),
};
const permissionsToAssign = [...permissions];

View File

@ -44,9 +44,12 @@ const deleteByRolesIds = async (rolesIds) => {
* @returns {Promise<array>}
*/
const deleteByIds = async (ids) => {
const result = [];
for (const id of ids) {
await strapi.query('admin::permission').delete({ where: { id } });
const queryResult = await strapi.query('admin::permission').delete({ where: { id } });
result.push(queryResult);
}
strapi.eventHub.emit('permission.delete', { permissions: result });
};
/**
@ -61,7 +64,10 @@ const createMany = async (permissions) => {
createdPermissions.push(newPerm);
}
return permissionDomain.toPermission(createdPermissions);
const permissionsToReturn = permissionDomain.toPermission(createdPermissions);
strapi.eventHub.emit('permission.create', { permissions: permissionsToReturn });
return permissionsToReturn;
};
/**
@ -75,7 +81,10 @@ const update = async (params, attributes) => {
.query('admin::permission')
.update({ where: params, data: attributes });
return permissionDomain.toPermission(updatedPermission);
const permissionToReturn = permissionDomain.toPermission(updatedPermission);
strapi.eventHub.emit('permission.update', { permissions: permissionToReturn });
return permissionToReturn;
};
/**

View File

@ -64,7 +64,10 @@ const create = async (attributes) => {
code: attributes.code || autoGeneratedCode,
};
return strapi.query('admin::role').create({ data: rolesWithCode });
const result = await strapi.query('admin::role').create({ data: rolesWithCode });
strapi.eventHub.emit('role.create', { role: sanitizeRole(result) });
return result;
};
/**
@ -137,7 +140,12 @@ const update = async (params, attributes) => {
}
}
return strapi.query('admin::role').update({ where: params, data: sanitizedAttributes });
const result = await strapi
.query('admin::role')
.update({ where: params, data: sanitizedAttributes });
strapi.eventHub.emit('role.update', { role: sanitizeRole(result) });
return result;
};
/**
@ -194,6 +202,7 @@ const deleteByIds = async (ids = []) => {
const deletedRole = await strapi.query('admin::role').delete({ where: { id } });
if (deletedRole) {
strapi.eventHub.emit('role.delete', { role: deletedRole });
deletedRoles.push(deletedRole);
}
}