Move hash function to user services instead of it being a separate service

This commit is contained in:
ivanThePleasant 2022-08-12 10:19:40 +03:00
parent cc17c00fd6
commit 3ead6f2487
15 changed files with 25 additions and 33 deletions

View File

@ -108,7 +108,7 @@ describe('Role controller', () => {
role: {
findOne,
},
'user-hash': {
user: {
hashAdminUser,
},
},
@ -155,7 +155,7 @@ describe('Role controller', () => {
actionProvider: { get: jest.fn() },
conditionProvider: { values: jest.fn(() => []) },
},
'user-hash': {
user: {
hashAdminUser,
},
},
@ -226,7 +226,7 @@ describe('Role controller', () => {
})),
},
},
'user-hash': {
user: {
hashAdminUser,
},
},

View File

@ -28,8 +28,6 @@ describe('User Controller', () => {
services: {
user: {
exists,
},
'user-hash': {
hashAdminUser,
},
},
@ -68,8 +66,6 @@ describe('User Controller', () => {
exists,
create,
sanitizeUser,
},
'user-hash': {
hashAdminUser,
},
},

View File

@ -122,7 +122,7 @@ module.exports = {
roles: superAdminRole ? [superAdminRole.id] : [],
});
const adminUserId = await getService('user-hash').hashAdminUser(user);
const adminUserId = await getService('user').hashAdminUser(user);
strapi.telemetry.send(adminUserId, 'didCreateFirstAdmin');

View File

@ -98,7 +98,7 @@ module.exports = {
async updatePermissions(ctx) {
const { id } = ctx.params;
const { body: input } = ctx.request;
const adminUserId = await getService('user-hash').hashAdminUser(ctx.state.user);
const adminUserId = await getService('user').hashAdminUser(ctx.state.user);
const { findOne, assignPermissions } = getService('role');
const { sanitizePermission, actionProvider } = getService('permission');

View File

@ -13,7 +13,7 @@ const { getService } = require('../utils');
module.exports = {
async create(ctx) {
const { body } = ctx.request;
const adminUserId = await getService('user-hash').hashAdminUser(ctx.state.user);
const adminUserId = await getService('user').hashAdminUser(ctx.state.user);
await validateUserCreationInput(body);

View File

@ -14,5 +14,4 @@ module.exports = {
action: require('./action'),
'api-token': require('./api-token'),
'project-settings': require('./project-settings'),
'user-hash': require('./user-hash'),
};

View File

@ -1,13 +0,0 @@
'use strict';
const crypto = require('crypto');
module.exports = {
hashAdminUser(payload) {
if (typeof payload === 'string') {
return crypto.createHash('sha256').update(payload).digest('hex');
}
return crypto.createHash('sha256').update(payload.email).digest('hex');
},
};

View File

@ -2,6 +2,7 @@
const _ = require('lodash');
const { defaults } = require('lodash/fp');
const crypto = require('crypto');
const { stringIncludes } = require('@strapi/utils');
const { ValidationError } = require('@strapi/utils').errors;
const { createUser, hasSuperAdminRole } = require('../domain/user');
@ -323,6 +324,14 @@ const getLanguagesInUse = async () => {
return users.map((user) => user.preferedLanguage || 'en');
};
const hashAdminUser = (payload) => {
if (typeof payload === 'string') {
return crypto.createHash('sha256').update(payload).digest('hex');
}
return crypto.createHash('sha256').update(payload.email).digest('hex');
};
module.exports = {
create,
updateById,
@ -341,4 +350,5 @@ module.exports = {
displayWarningIfUsersDontHaveRole,
resetPasswordByEmail,
getLanguagesInUse,
hashAdminUser,
};

View File

@ -112,7 +112,7 @@ describe('Single Types', () => {
permission: {
createPermissionsManager,
},
'user-hash': {
user: {
hashAdminUser,
},
},

View File

@ -65,7 +65,7 @@ module.exports = {
const { userAbility, user } = ctx.state;
const { model } = ctx.params;
const { body } = ctx.request;
const adminUserId = strapi.service('admin::user-hash').hashAdminUser(ctx.state.user);
const adminUserId = strapi.service('admin::user').hashAdminUser(ctx.state.user);
const totalEntries = await strapi.query(model).count();

View File

@ -75,7 +75,7 @@ module.exports = {
const { userAbility } = ctx.state;
const { uid } = ctx.params;
const { body } = ctx.request;
const adminUserId = strapi.service('admin::user-hash').hashAdminUser(ctx.state.user);
const adminUserId = strapi.service('admin::user').hashAdminUser(ctx.state.user);
const contentTypeService = getService('content-types');
const metricsService = getService('metrics');

View File

@ -46,7 +46,7 @@ module.exports = {
const { user, userAbility } = ctx.state;
const { model } = ctx.params;
const { body, query } = ctx.request;
const adminUserId = strapi.service('admin::user-hash').hashAdminUser(ctx.state.user);
const adminUserId = strapi.service('admin::user').hashAdminUser(ctx.state.user);
const entityManager = getService('entity-manager');
const permissionChecker = getService('permission-checker').create({ userAbility, model });

View File

@ -47,7 +47,7 @@ module.exports = {
async createContentType(ctx) {
const { body } = ctx.request;
const adminUserId = strapi.service('admin::user-hash').hashAdminUser(ctx.state.user);
const adminUserId = strapi.service('admin::user').hashAdminUser(ctx.state.user);
try {
await validateContentTypeInput(body);

View File

@ -16,7 +16,7 @@ module.exports = {
}
const data = await validateSettings(body);
const adminUserId = strapi.service('admin::user-hash').hashAdminUser(ctx.state.user.email);
const adminUserId = strapi.service('admin::user').hashAdminUser(ctx.state.user.email);
await getService('upload').setSettings(data, adminUserId);

View File

@ -23,7 +23,7 @@ module.exports = {
id
);
user.adminUserId = strapi.service('admin::user-hash').hashAdminUser(user);
user.adminUserId = strapi.service('admin::user').hashAdminUser(user);
const data = await validateUploadBody(body);
const file = await uploadService.updateFileInfo(id, data.fileInfo, { user });
@ -50,7 +50,7 @@ module.exports = {
throw new ApplicationError('Cannot replace a file with multiple ones');
}
user.adminUserId = strapi.service('admin::user-hash').hashAdminUser(user);
user.adminUserId = strapi.service('admin::user').hashAdminUser(user);
const data = await validateUploadBody(body);
const replacedFiles = await uploadService.replace(id, { data, file: files }, { user });
@ -75,7 +75,7 @@ module.exports = {
return ctx.forbidden();
}
user.adminUserId = strapi.service('admin::user-hash').hashAdminUser(user);
user.adminUserId = strapi.service('admin::user').hashAdminUser(user);
const data = await validateUploadBody(body);
const uploadedFiles = await uploadService.upload({ data, files }, { user });