diff --git a/services/core-store.js b/services/core-store.js index 57c2039..268e232 100644 --- a/services/core-store.js +++ b/services/core-store.js @@ -38,11 +38,18 @@ module.exports = { const shouldExclude = strapi.plugins['config-sync'].config.exclude.includes(`${configPrefix}.${configName}`); if (shouldExclude) return; - const { value, ...fileContent } = configContent; const coreStoreAPI = strapi.query(coreStoreQueryString); const configExists = await coreStoreAPI - .findOne({ key: configName, environment: fileContent.environment }); + .findOne({ key: configName }); + + if (configExists && configContent === null) { + await coreStoreAPI.delete({ key: configName }); + + return; + } + + const { value, ...fileContent } = configContent; if (!configExists) { await coreStoreAPI.create({ value: JSON.stringify(value), ...fileContent }); diff --git a/services/role-permissions.js b/services/role-permissions.js index 5753efc..d009eed 100644 --- a/services/role-permissions.js +++ b/services/role-permissions.js @@ -61,6 +61,15 @@ module.exports = { .query('role', 'users-permissions') .findOne({ type: configName }); + if (role && configContent === null) { + const publicRole = await strapi.query('role', 'users-permissions').findOne({ type: 'public' }); + const publicRoleID = publicRole.id; + + await service.deleteRole(role.id, publicRoleID); + + return; + } + const users = role ? role.users : []; configContent.users = users; diff --git a/services/webhooks.js b/services/webhooks.js index 3b98ede..005a451 100644 --- a/services/webhooks.js +++ b/services/webhooks.js @@ -44,6 +44,9 @@ module.exports = { if (!configExists) { await webhookAPI.create(configContent); } else { + if (configContent === null) { + await webhookAPI.delete({ id: configName }); + } await webhookAPI.update({ id: configName }, configContent); } },