From 6ae2f6dfeeff27a24fce72fb45022fcbccfd862d Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Thu, 18 Jan 2018 14:10:26 +0100 Subject: [PATCH] Add unique email verification on user update --- .../controllers/User.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/strapi-plugin-users-permissions/controllers/User.js b/packages/strapi-plugin-users-permissions/controllers/User.js index 15f1c242be..8d31e48e21 100644 --- a/packages/strapi-plugin-users-permissions/controllers/User.js +++ b/packages/strapi-plugin-users-permissions/controllers/User.js @@ -39,7 +39,7 @@ module.exports = { if (!user) { return ctx.badRequest(null, [{ messages: [{ id: 'No authorization header was found' }] }]); } - + const data = _.omit(user.toJSON ? user.toJSON() : user, ['password', 'resetPasswordToken']); // Send 200 `ok` @@ -98,6 +98,16 @@ module.exports = { delete ctx.request.body.role; } + if (ctx.request.body.email && strapi.plugins['users-permissions'].config.advanced.unique_email) { + const user = await strapi.query('user', 'users-permissions').findOne({ + email: ctx.request.body.email + }); + + if (user.id !== ctx.params.id) { + return ctx.badRequest(null, ctx.request.admin ? [{ messages: [{ id: 'Auth.form.error.email.taken' }] }] : 'Email is already taken.'); + } + } + const data = await strapi.plugins['users-permissions'].services.user.edit(ctx.params, ctx.request.body) ; // Send 200 `ok`