From cb0f33c756ab9cff08e91c7c4982c7418f0b548a Mon Sep 17 00:00:00 2001 From: HichamELBSI Date: Tue, 4 Aug 2020 13:07:55 +0200 Subject: [PATCH] Update permissions Signed-off-by: HichamELBSI --- .../src/containers/Roles/CreatePage/index.js | 5 +++ .../src/containers/Roles/EditPage/index.js | 5 +++ .../Roles/ProtectedCreatePage/index.js | 12 +++++ .../Roles/ProtectedEditPage/index.js | 12 +++++ .../admin/src/containers/Roles/index.js | 44 +++++++++++++++++-- .../admin/src/index.js | 20 ++++----- .../admin/src/permissions.js | 27 ++++++------ 7 files changed, 96 insertions(+), 29 deletions(-) create mode 100644 packages/strapi-plugin-users-permissions/admin/src/containers/Roles/CreatePage/index.js create mode 100644 packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js create mode 100644 packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedCreatePage/index.js create mode 100644 packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedEditPage/index.js diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/CreatePage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/CreatePage/index.js new file mode 100644 index 0000000000..4a2297cfdf --- /dev/null +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/CreatePage/index.js @@ -0,0 +1,5 @@ +import React from 'react'; + +const RolesCreatePage = () =>
Role create
; + +export default RolesCreatePage; diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js new file mode 100644 index 0000000000..1ee7c75e7b --- /dev/null +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/EditPage/index.js @@ -0,0 +1,5 @@ +import React from 'react'; + +const RolesEditPage = () =>
Role edit
; + +export default RolesEditPage; diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedCreatePage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedCreatePage/index.js new file mode 100644 index 0000000000..bce451f817 --- /dev/null +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedCreatePage/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { CheckPagePermissions } from 'strapi-helper-plugin'; +import pluginPermissions from '../../../permissions'; +import RolesCreatePage from '../CreatePage'; + +const ProtectedRolesCreatePage = () => ( + + + +); + +export default ProtectedRolesCreatePage; diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedEditPage/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedEditPage/index.js new file mode 100644 index 0000000000..568dbc612b --- /dev/null +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/ProtectedEditPage/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { CheckPagePermissions } from 'strapi-helper-plugin'; +import pluginPermissions from '../../../permissions'; +import RolesEditPage from '../EditPage'; + +const ProtectedRolesEditPage = () => ( + + + +); + +export default ProtectedRolesEditPage; diff --git a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/index.js b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/index.js index 479352e3ee..9aed208f5b 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/containers/Roles/index.js @@ -1,7 +1,45 @@ import React from 'react'; +import { Switch, Route, Link } from 'react-router-dom'; +import { useGlobalContext, CheckPagePermissions, NotFound } from 'strapi-helper-plugin'; +import pluginId from '../../pluginId'; +import pluginPermissions from '../../permissions'; -const RolesPage = () => { - return
Roles
; +import ProtectedRolesEditPage from './ProtectedEditPage'; +import ProtectedRolesCreatePage from './ProtectedCreatePage'; + +const RolesListPage = () => { + return ( + +
Role list
+
+ Edit Role +
+
+ Create Role +
+
+ ); }; -export default RolesPage; +const Roles = () => { + const { settingsBaseURL } = useGlobalContext(); + + return ( + + + + + + + ); +}; + +export default Roles; diff --git a/packages/strapi-plugin-users-permissions/admin/src/index.js b/packages/strapi-plugin-users-permissions/admin/src/index.js index 4ec95e99d0..a8390cb286 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/index.js @@ -53,12 +53,8 @@ export default strapi => { }, name: 'roles', to: `${strapi.settingsBaseURL}/${pluginId}/roles`, - Component: () => ( - - - - ), - permissions: pluginPermissions.settings, + Component: () => , + permissions: pluginPermissions.accessRoles, }, { title: { @@ -68,11 +64,11 @@ export default strapi => { name: 'providers', to: `${strapi.settingsBaseURL}/${pluginId}/providers`, Component: () => ( - + ), - permissions: pluginPermissions.settings, + permissions: pluginPermissions.readProviders, }, { title: { @@ -82,11 +78,11 @@ export default strapi => { name: 'email-templates', to: `${strapi.settingsBaseURL}/${pluginId}/email-templates`, Component: () => ( - + ), - permissions: pluginPermissions.settings, + permissions: pluginPermissions.readEmailTemplates, }, { title: { @@ -96,11 +92,11 @@ export default strapi => { name: 'advanced-settings', to: `${strapi.settingsBaseURL}/${pluginId}/advanced-settings`, Component: () => ( - + ), - permissions: pluginPermissions.settings, + permissions: pluginPermissions.readAdvancedSettings, }, ], }, diff --git a/packages/strapi-plugin-users-permissions/admin/src/permissions.js b/packages/strapi-plugin-users-permissions/admin/src/permissions.js index 0785b716a8..7f90c70854 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/permissions.js +++ b/packages/strapi-plugin-users-permissions/admin/src/permissions.js @@ -1,15 +1,16 @@ const pluginPermissions = { - // This permission regards the main component (App) and is used to tell - // If the plugin link should be displayed in the menu - // And also if the plugin is accessible. This use case is found when a user types the url of the - // plugin directly in the browser - main: [ - { action: 'plugins::users-permissions.advanced-settings.read', subject: null }, - { action: 'plugins::users-permissions.email-templates.read', subject: null }, - { action: 'plugins::users-permissions.providers.read', subject: null }, + // Roles + accessRoles: [ + { action: 'plugins::users-permissions.roles.create', subject: null }, { action: 'plugins::users-permissions.roles.read', subject: null }, + { action: 'plugins::users-permissions.roles.update', subject: null }, ], createRole: [{ action: 'plugins::users-permissions.roles.create', subject: null }], + deleteRole: [{ action: 'plugins::users-permissions.roles.delete', subject: null }], + readRoles: [{ action: 'plugins::users-permissions.roles.read', subject: null }], + updateRole: [{ action: 'plugins::users-permissions.roles.update', subject: null }], + + // AdvancedSettings readAdvancedSettings: [ { action: 'plugins::users-permissions.advanced-settings.read', subject: null }, { action: 'plugins::users-permissions.advanced-settings.update', subject: null }, @@ -17,6 +18,8 @@ const pluginPermissions = { updateAdvancedSettings: [ { action: 'plugins::users-permissions.advanced-settings.update', subject: null }, ], + + // Emails readEmailTemplates: [ { action: 'plugins::users-permissions.email-templates.read', subject: null }, { action: 'plugins::users-permissions.email-templates.update', subject: null }, @@ -24,17 +27,13 @@ const pluginPermissions = { updateEmailTemplates: [ { action: 'plugins::users-permissions.email-templates.update', subject: null }, ], + + // Providers readProviders: [ { action: 'plugins::users-permissions.providers.read', subject: null }, { action: 'plugins::users-permissions.providers.update', subject: null }, ], updateProviders: [{ action: 'plugins::users-permissions.providers.update', subject: null }], - readRoles: [ - { action: 'plugins::users-permissions.roles.read', subject: null }, - { action: 'plugins::users-permissions.roles.update', subject: null }, - ], - updateRole: [{ action: 'plugins::users-permissions.roles.update', subject: null }], - deleteRole: [{ action: 'plugins::users-permissions.roles.delete', subject: null }], }; export default pluginPermissions;