From 4d47d65c6dc3a5a0bd84f3bffb261c16c29c27ce Mon Sep 17 00:00:00 2001 From: Jim Laurie Date: Tue, 12 Jun 2018 19:19:10 +0200 Subject: [PATCH] Fix default role provider and create user fix #1212 --- .../controllers/User.js | 12 ++++++++++-- .../services/Providers.js | 6 +++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/strapi-plugin-users-permissions/controllers/User.js b/packages/strapi-plugin-users-permissions/controllers/User.js index 08ed6b30d0..0902642ef1 100644 --- a/packages/strapi-plugin-users-permissions/controllers/User.js +++ b/packages/strapi-plugin-users-permissions/controllers/User.js @@ -70,12 +70,14 @@ module.exports = { */ create: async (ctx) => { - if ((await strapi.store({ + const advanced = await strapi.store({ environment: '', type: 'plugin', name: 'users-permissions', key: 'advanced' - }).get()).unique_email && ctx.request.body.email) { + }).get(); + + if (advanced.unique_email && ctx.request.body.email) { const user = await strapi.query('user', 'users-permissions').findOne({ email: ctx.request.body.email }); if (user) { @@ -83,6 +85,12 @@ module.exports = { } } + if (!ctx.request.body.role) { + const defaultRole = await strapi.query('role', 'users-permissions').findOne({ type: advanced.default_role }, []); + + ctx.request.body.role = defaultRole._id || defaultRole.id; + } + try { const data = await strapi.plugins['users-permissions'].services.user.add(ctx.request.body); // Send 201 `created` diff --git a/packages/strapi-plugin-users-permissions/services/Providers.js b/packages/strapi-plugin-users-permissions/services/Providers.js index 7ded377edd..a7f32886a1 100644 --- a/packages/strapi-plugin-users-permissions/services/Providers.js +++ b/packages/strapi-plugin-users-permissions/services/Providers.js @@ -70,13 +70,13 @@ exports.connect = (provider, query) => { return resolve([null, [{ messages: [{ id: 'Auth.form.error.email.taken' }] }], 'Email is already taken.']); } - // Retrieve role `authenticated`. - const authenticatedRole = await strapi.query('role', 'users-permissions').findOne({ type: 'authenticated' }, []); + // Retrieve default role. + const defaultRole = await strapi.query('role', 'users-permissions').findOne({ type: advanced.default_role }, []); // Create the new user. const params = _.assign(profile, { provider: provider, - role: authenticatedRole._id || authenticatedRole.id + role: defaultRole._id || defaultRole.id }); const createdUser = await strapi.query('user', 'users-permissions').create(params);