From efa57a37fa08afd6157b62e5a0aba10bc586a6b9 Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Tue, 14 May 2019 09:30:10 +0200 Subject: [PATCH] Fix administrator edition --- packages/strapi-admin/config/queries/bookshelf.js | 11 +++++++---- packages/strapi-admin/controllers/Admin.js | 10 +++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/strapi-admin/config/queries/bookshelf.js b/packages/strapi-admin/config/queries/bookshelf.js index 0b4dbda44e..b897b9f07f 100644 --- a/packages/strapi-admin/config/queries/bookshelf.js +++ b/packages/strapi-admin/config/queries/bookshelf.js @@ -85,10 +85,13 @@ module.exports = ({ model }) => ({ patch: true, }) .catch(err => { - const field = _.last(_.words(err.detail.split('=')[0])); - const error = { message: `This ${field} is already taken`, field }; + if (err && err.detail) { + const field = _.last(_.words(err.detail.split('=')[0])); + const error = { message: `This ${field} is already taken`, field }; + throw error; + } - throw error; + throw err; }); - } + }, }); diff --git a/packages/strapi-admin/controllers/Admin.js b/packages/strapi-admin/controllers/Admin.js index 5b6cc5b1d5..cb6293f62c 100644 --- a/packages/strapi-admin/controllers/Admin.js +++ b/packages/strapi-admin/controllers/Admin.js @@ -134,6 +134,14 @@ module.exports = { update: async ctx => { const values = ctx.request.body; + const admin = await strapi.admin + .queries('administrator', 'admin') + .findOne(ctx.params); + + if (values.password === admin.password) { + delete values.password; + } + if (values.password) { values.password = await strapi.plugins[ 'users-permissions' @@ -142,7 +150,7 @@ module.exports = { const data = await strapi.admin .queries('administrator', 'admin') - .update(Object.assign({}, ctx.params, values)); + .update(ctx.params, values); // Send 200 `ok` ctx.send(data);