diff --git a/packages/strapi-plugin-users-permissions/config/routes.json b/packages/strapi-plugin-users-permissions/config/routes.json index 761ff5a2b1..1193ca8ff0 100644 --- a/packages/strapi-plugin-users-permissions/config/routes.json +++ b/packages/strapi-plugin-users-permissions/config/routes.json @@ -96,7 +96,6 @@ "policies": [] } }, - { "method": "GET", "path": "/providers", @@ -106,6 +105,15 @@ } }, + { + "method": "PUT", + "path": "/providers", + "handler": "UsersPermissions.updateProviders", + "config": { + "policies": [] + } + }, + { "method": "POST", diff --git a/packages/strapi-plugin-users-permissions/controllers/UsersPermissions.js b/packages/strapi-plugin-users-permissions/controllers/UsersPermissions.js index b735fab453..99c1eec9cc 100644 --- a/packages/strapi-plugin-users-permissions/controllers/UsersPermissions.js +++ b/packages/strapi-plugin-users-permissions/controllers/UsersPermissions.js @@ -207,5 +207,22 @@ module.exports = { getProviders: async (ctx) => { ctx.send(strapi.plugins['users-permissions'].config.grant); + }, + + updateProviders: async (ctx) => { + if (_.isEmpty(ctx.request.body)) { + return ctx.badRequest(null, [{ messages: [{ id: 'Cannot be empty' }] }]); + } + + strapi.reload.isWatching = false; + + fs.writeFileSync(path.join(strapi.config.appPath, 'plugins', 'users-permissions', 'config', 'grant.json'), JSON.stringify({ + grant: ctx.request.body + }, null, 2), 'utf8'); + + + ctx.send({ ok: true }); + + strapi.reload(); } };