Add unique email verification on user update

This commit is contained in:
Jim Laurie 2018-01-18 14:10:26 +01:00
parent cf6b240451
commit 6ae2f6dfee

View File

@ -39,7 +39,7 @@ module.exports = {
if (!user) { if (!user) {
return ctx.badRequest(null, [{ messages: [{ id: 'No authorization header was found' }] }]); return ctx.badRequest(null, [{ messages: [{ id: 'No authorization header was found' }] }]);
} }
const data = _.omit(user.toJSON ? user.toJSON() : user, ['password', 'resetPasswordToken']); const data = _.omit(user.toJSON ? user.toJSON() : user, ['password', 'resetPasswordToken']);
// Send 200 `ok` // Send 200 `ok`
@ -98,6 +98,16 @@ module.exports = {
delete ctx.request.body.role; 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) ; const data = await strapi.plugins['users-permissions'].services.user.edit(ctx.params, ctx.request.body) ;
// Send 200 `ok` // Send 200 `ok`