From a8c59f999a57b3823ecd2b7b6eb545d5f35a7d3a Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Fri, 2 Feb 2018 12:59:34 +0100 Subject: [PATCH] Fix user update via API and content-type-builder --- .../strapi-plugin-users-permissions/controllers/User.js | 6 +++--- packages/strapi-plugin-users-permissions/services/User.js | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/strapi-plugin-users-permissions/controllers/User.js b/packages/strapi-plugin-users-permissions/controllers/User.js index afd61eb3db..a7546f1e5d 100644 --- a/packages/strapi-plugin-users-permissions/controllers/User.js +++ b/packages/strapi-plugin-users-permissions/controllers/User.js @@ -97,9 +97,9 @@ module.exports = { update: async (ctx, next) => { try { if (strapi.plugins['users-permissions'].config.advanced.unique_email && ctx.request.body.email) { - const user = await strapi.query('user', 'users-permissions').findOne({ email: ctx.request.body.email }); + const users = await strapi.plugins['users-permissions'].services.user.fetchAll({ email: ctx.request.body.email }); - if (user) { + if (users && _.find(users, user => (user.id || user._id).toString() !== ctx.params.id)) { return ctx.badRequest(null, ctx.request.admin ? [{ messages: [{ id: 'Auth.form.error.email.taken' }] }] : 'Email is already taken.'); } } @@ -119,7 +119,7 @@ module.exports = { email: ctx.request.body.email }); - if (user.id !== ctx.params.id) { + if ((user.id || user._id).toString() !== ctx.params.id) { return ctx.badRequest(null, ctx.request.admin ? [{ messages: [{ id: 'Auth.form.error.email.taken' }] }] : 'Email is already taken.'); } } diff --git a/packages/strapi-plugin-users-permissions/services/User.js b/packages/strapi-plugin-users-permissions/services/User.js index 795b21d63f..8fecb8792e 100644 --- a/packages/strapi-plugin-users-permissions/services/User.js +++ b/packages/strapi-plugin-users-permissions/services/User.js @@ -48,6 +48,9 @@ module.exports = { // Use Content Manager business logic to handle relation. if (strapi.plugins['content-manager']) { + params.model = 'user'; + params.id = params._id; + return await strapi.plugins['content-manager'].services['contentmanager'].edit(params, values, 'users-permissions'); }