diff --git a/packages/strapi-plugin-users-permissions/config/roles.json b/packages/strapi-plugin-users-permissions/config/roles.json deleted file mode 100644 index 43290d52bc..0000000000 --- a/packages/strapi-plugin-users-permissions/config/roles.json +++ /dev/null @@ -1,578 +0,0 @@ -{ - "0": { - "description": "", - "name": "Administrator", - "permissions": { - "content-manager": { - "controllers": { - "contentmanager": { - "models": { - "enabled": true, - "policy": "" - }, - "find": { - "enabled": true, - "policy": "" - }, - "count": { - "enabled": true, - "policy": "" - }, - "findOne": { - "enabled": true, - "policy": "" - }, - "create": { - "enabled": true, - "policy": "" - }, - "update": { - "enabled": true, - "policy": "" - }, - "delete": { - "enabled": true, - "policy": "" - }, - "identity": { - "enabled": true, - "policy": "" - } - } - } - }, - "content-type-builder": { - "controllers": { - "contenttypebuilder": { - "getModels": { - "enabled": true, - "policy": "" - }, - "getModel": { - "enabled": true, - "policy": "" - }, - "getConnections": { - "enabled": true, - "policy": "" - }, - "createModel": { - "enabled": true, - "policy": "" - }, - "updateModel": { - "enabled": true, - "policy": "" - }, - "deleteModel": { - "enabled": true, - "policy": "" - }, - "autoReload": { - "enabled": true, - "policy": "" - }, - "checkTableExists": { - "enabled": true, - "policy": "" - }, - "identity": { - "enabled": true, - "policy": "" - } - } - } - }, - "settings-manager": { - "controllers": { - "settingsmanager": { - "menu": { - "enabled": true, - "policy": "" - }, - "environments": { - "enabled": true, - "policy": "" - }, - "languages": { - "enabled": true, - "policy": "" - }, - "databases": { - "enabled": true, - "policy": "" - }, - "database": { - "enabled": true, - "policy": "" - }, - "databaseModel": { - "enabled": true, - "policy": "" - }, - "get": { - "enabled": true, - "policy": "" - }, - "update": { - "enabled": true, - "policy": "" - }, - "createLanguage": { - "enabled": true, - "policy": "" - }, - "deleteLanguage": { - "enabled": true, - "policy": "" - }, - "createDatabase": { - "enabled": true, - "policy": "" - }, - "updateDatabase": { - "enabled": true, - "policy": "" - }, - "deleteDatabase": { - "enabled": true, - "policy": "" - }, - "autoReload": { - "enabled": true, - "policy": "" - }, - "identity": { - "enabled": true, - "policy": "" - } - } - } - }, - "users-permissions": { - "controllers": { - "auth": { - "identity": { - "enabled": true, - "policy": "" - }, - "callback": { - "enabled": true, - "policy": "" - }, - "register": { - "enabled": true, - "policy": "" - }, - "forgotPassword": { - "enabled": true, - "policy": "" - }, - "changePassword": { - "enabled": true, - "policy": "" - } - }, - "user": { - "identity": { - "enabled": true, - "policy": "" - }, - "find": { - "enabled": true, - "policy": "" - }, - "findOne": { - "enabled": true, - "policy": "" - }, - "create": { - "enabled": true, - "policy": "" - }, - "update": { - "enabled": true, - "policy": "" - }, - "destroy": { - "enabled": true, - "policy": "" - } - }, - "userspermissions": { - "createRole": { - "enabled": true, - "policy": "" - }, - "deleteProvider": { - "enabled": true, - "policy": "" - }, - "deleteRole": { - "enabled": true, - "policy": "" - }, - "getPermissions": { - "enabled": true, - "policy": "" - }, - "getPolicies": { - "enabled": true, - "policy": "" - }, - "getRole": { - "enabled": true, - "policy": "" - }, - "getRoles": { - "enabled": true, - "policy": "" - }, - "getRoutes": { - "enabled": true, - "policy": "" - }, - "index": { - "enabled": true, - "policy": "" - }, - "init": { - "enabled": true, - "policy": "" - }, - "searchUsers": { - "enabled": true, - "policy": "" - }, - "updateRole": { - "enabled": true, - "policy": "" - }, - "identity": { - "enabled": true, - "policy": "" - } - } - } - }, - "application": { - "controllers": { - "bite": { - "find": { - "enabled": true, - "policy": "" - }, - "findOne": { - "enabled": true, - "policy": "" - }, - "create": { - "enabled": true, - "policy": "" - }, - "update": { - "enabled": true, - "policy": "" - }, - "destroy": { - "enabled": true, - "policy": "" - }, - "identity": { - "enabled": true, - "policy": "" - } - } - } - } - } - }, - "1": { - "name": "Guest", - "description": "", - "permissions": { - "application": { - "controllers": { - "bite": { - "find": { - "enabled": false, - "policy": "" - }, - "findOne": { - "enabled": false, - "policy": "" - }, - "create": { - "enabled": false, - "policy": "" - }, - "update": { - "enabled": false, - "policy": "" - }, - "destroy": { - "enabled": false, - "policy": "" - }, - "identity": { - "enabled": false, - "policy": "" - } - } - } - }, - "content-manager": { - "controllers": { - "contentmanager": { - "models": { - "enabled": false, - "policy": "" - }, - "find": { - "enabled": false, - "policy": "" - }, - "count": { - "enabled": false, - "policy": "" - }, - "findOne": { - "enabled": false, - "policy": "" - }, - "create": { - "enabled": false, - "policy": "" - }, - "update": { - "enabled": false, - "policy": "" - }, - "delete": { - "enabled": false, - "policy": "" - }, - "identity": { - "enabled": false, - "policy": "" - } - } - } - }, - "content-type-builder": { - "controllers": { - "contenttypebuilder": { - "getModels": { - "enabled": false, - "policy": "" - }, - "getModel": { - "enabled": false, - "policy": "" - }, - "getConnections": { - "enabled": false, - "policy": "" - }, - "createModel": { - "enabled": false, - "policy": "" - }, - "updateModel": { - "enabled": false, - "policy": "" - }, - "deleteModel": { - "enabled": false, - "policy": "" - }, - "autoReload": { - "enabled": false, - "policy": "" - }, - "checkTableExists": { - "enabled": false, - "policy": "" - }, - "identity": { - "enabled": false, - "policy": "" - } - } - } - }, - "settings-manager": { - "controllers": { - "settingsmanager": { - "menu": { - "enabled": false, - "policy": "" - }, - "environments": { - "enabled": false, - "policy": "" - }, - "languages": { - "enabled": false, - "policy": "" - }, - "databases": { - "enabled": false, - "policy": "" - }, - "database": { - "enabled": false, - "policy": "" - }, - "databaseModel": { - "enabled": false, - "policy": "" - }, - "get": { - "enabled": false, - "policy": "" - }, - "update": { - "enabled": false, - "policy": "" - }, - "createLanguage": { - "enabled": false, - "policy": "" - }, - "deleteLanguage": { - "enabled": false, - "policy": "" - }, - "createDatabase": { - "enabled": false, - "policy": "" - }, - "updateDatabase": { - "enabled": false, - "policy": "" - }, - "deleteDatabase": { - "enabled": false, - "policy": "" - }, - "autoReload": { - "enabled": false, - "policy": "" - }, - "identity": { - "enabled": false, - "policy": "" - } - } - } - }, - "users-permissions": { - "controllers": { - "auth": { - "callback": { - "enabled": true, - "policy": "" - }, - "register": { - "enabled": true, - "policy": "" - }, - "forgotPassword": { - "enabled": true, - "policy": "" - }, - "changePassword": { - "enabled": true, - "policy": "" - }, - "identity": { - "enabled": true, - "policy": "" - } - }, - "user": { - "find": { - "enabled": false, - "policy": "" - }, - "findOne": { - "enabled": false, - "policy": "" - }, - "create": { - "enabled": false, - "policy": "" - }, - "update": { - "enabled": false, - "policy": "" - }, - "destroy": { - "enabled": false, - "policy": "" - }, - "identity": { - "enabled": false, - "policy": "" - } - }, - "userspermissions": { - "createRole": { - "enabled": false, - "policy": "" - }, - "deleteProvider": { - "enabled": false, - "policy": "" - }, - "deleteRole": { - "enabled": false, - "policy": "" - }, - "getPermissions": { - "enabled": false, - "policy": "" - }, - "getPolicies": { - "enabled": false, - "policy": "" - }, - "getRole": { - "enabled": false, - "policy": "" - }, - "getRoles": { - "enabled": false, - "policy": "" - }, - "getRoutes": { - "enabled": false, - "policy": "" - }, - "index": { - "enabled": false, - "policy": "" - }, - "init": { - "enabled": true, - "policy": "" - }, - "searchUsers": { - "enabled": false, - "policy": "" - }, - "updateRole": { - "enabled": false, - "policy": "" - }, - "identity": { - "enabled": false, - "policy": "" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/packages/strapi-plugin-users-permissions/services/UsersPermissions.js b/packages/strapi-plugin-users-permissions/services/UsersPermissions.js index 5792ee41f4..9c61acecf9 100644 --- a/packages/strapi-plugin-users-permissions/services/UsersPermissions.js +++ b/packages/strapi-plugin-users-permissions/services/UsersPermissions.js @@ -169,7 +169,33 @@ module.exports = { const appActions = Service.getActions(); const roleConfigPath = Service.getRoleConfigPath(); const writePermissions = Service.writePermissions; - const currentRoles = require(roleConfigPath); + let currentRoles; + + try { + currentRoles = require(roleConfigPath); + } catch(err) { + currentRoles = { + '0': { + description: '', + name: 'Administrator', + permissions: { + application: { + controllers: {}, + }, + }, + }, + '1': { + description: '', + name: 'Guest', + permissions: { + application: { + controllers: {}, + }, + }, + }, + }; + } + const remove = await Service.updateData(_.cloneDeep(currentRoles)); const added = await Service.updateData(_.cloneDeep(remove), 'set'); @@ -205,6 +231,13 @@ module.exports = { }); }, + updateUserRole: async (user, role) => { + await strapi.query('user', 'users-permissions').update({ + _id: user._id || user.id, + role: role.toString() + }); + }, + writePermissions: (data) => { const roleConfigPath = strapi.plugins['users-permissions'].services.userspermissions.getRoleConfigPath(); @@ -214,11 +247,4 @@ module.exports = { strapi.log.error(err); } }, - - updateUserRole: async (user, role) => { - await strapi.query('user', 'users-permissions').update({ - _id: user._id || user.id, - role: role.toString() - }); - } };