strapi/api-tests/core/admin/admin-permission.test.api.js

1141 lines
41 KiB
JavaScript
Raw Normal View History

'use strict';
const _ = require('lodash');
const { createAuthRequest } = require('api-tests/request');
const { createStrapiInstance } = require('api-tests/strapi');
describe('Role CRUD End to End', () => {
let rq;
let strapi;
beforeAll(async () => {
strapi = await createStrapiInstance();
rq = await createAuthRequest({ strapi });
});
afterAll(async () => {
await strapi.destroy();
});
test('Can get the existing permissions', async () => {
2022-08-08 15:50:34 +02:00
const res = await rq({
url: '/admin/permissions',
method: 'GET',
});
expect(res.statusCode).toBe(200);
// Data is sorted to avoid error with snapshot when the data is not in the same order
const sortedData = _.cloneDeep(res.body.data);
2022-08-08 23:33:39 +02:00
Object.keys(sortedData.sections).forEach((sectionName) => {
sortedData.sections[sectionName] = _.sortBy(sortedData.sections[sectionName], ['action']);
});
sortedData.conditions = sortedData.conditions.sort();
2023-03-06 21:46:45 +01:00
// eslint-disable-next-line node/no-extraneous-require
2023-09-15 11:09:37 +02:00
const { features } = require('@strapi/strapi/dist/utils/ee').default;
2023-03-06 21:46:45 +01:00
const hasSSO = features.isEnabled('sso');
if (hasSSO) {
expect(sortedData).toMatchInlineSnapshot(`
2023-03-06 21:46:45 +01:00
{
"conditions": [
{
"category": "default",
"displayName": "Is creator",
"id": "admin::is-creator",
},
{
"category": "default",
"displayName": "Has same role as creator",
"id": "admin::has-same-role-as-creator",
},
],
"sections": {
"collectionTypes": [
[
{
"actionId": "plugin::content-manager.explorer.create",
"applyToProperties": [
"fields",
"locales",
],
"label": "Create",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.read",
"applyToProperties": [
"fields",
"locales",
],
"label": "Read",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.update",
"applyToProperties": [
"fields",
"locales",
],
"label": "Update",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.delete",
"applyToProperties": [
"locales",
],
"label": "Delete",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.publish",
"applyToProperties": [
"locales",
],
"label": "Publish",
"subjects": [],
},
],
[
{
"label": "user",
"properties": [
{
"children": [
{
"label": "username",
"required": true,
"value": "username",
},
{
"label": "email",
"required": true,
"value": "email",
},
{
"label": "provider",
"value": "provider",
},
{
"label": "password",
"value": "password",
},
{
"label": "resetPasswordToken",
"value": "resetPasswordToken",
},
{
"label": "confirmationToken",
"value": "confirmationToken",
},
{
"label": "confirmed",
"value": "confirmed",
},
{
"label": "blocked",
"value": "blocked",
},
{
"label": "role",
"value": "role",
},
],
"label": "Fields",
"value": "fields",
},
],
"uid": "plugin::users-permissions.user",
},
],
],
"plugins": [
2022-08-29 13:55:28 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::content-manager.collection-types.configure-view",
"displayName": "Configure view",
"plugin": "content-manager",
"subCategory": "collection types",
I18n/ permissions rework (#9535) * Add a domain layer for the permission, rework the engine handling of the permissions Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Add permissions-fields-to-properties migration for the admin Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Removes useless console.log Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove debug logLevel from provider-login.test.e2e.js Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Adds the new layout for the GET permissions, allow to subscribe to actionRegistered events, adds i18n handlers Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Fix typo Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update permissions validators Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update unit tests Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update integrations test + fix some validation issues Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Change plugins & settings section format for the permissions layout * only return locales property to localized subjects for the permission's layout * Do not send the locales property to the permission's layout when there is no locales created * Add the 'locales' property to publish & delete routes * Fix unwanted mutation of the sections builder states on multiple builds * Fix units tests with (new engine) * Fix admin-role e2e test - Add locales property to the update payload * fix e2e testsé * Update e2e snapshots * Fix unit test for i18n bootstrap * Add mocks for i18n/bootstrap test * Fix has-locale condition & updatePermission validator * Avoid mutation in migration, always authorize super admin for has-locales condition * Rework rbac domain objects, add a hook module and a provider factory * Remove old providers * Update the admin services & tests for the new rbac domain & providers * Fix tests, bootstrap functions & services following rbac domain rework * Update migration runner * PR comments Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove useless console.log * Fix sanitizeCondition bug * Section builder rework * Add test for the section-builder section & add jsdoc for the permission domain * pr comments (without the migrations) * fix fields-to-properties migration * Add jsdoc for the sections-builder * Moves createBoundAbstractDomain from permission domain to the engine service * Remove debug logLevel for admin role test (e2e) * Fix core-store * Fix hooks & move business logic from i18n bootstrap to dedicated services * add route get-non-localized-fields * use write and read permission * refacto * add input validator * add route doc * handle ST Co-authored-by: Pierre Noël <petersg83@gmail.com> Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
2021-03-25 14:59:44 +01:00
},
2022-08-29 13:55:28 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::content-manager.components.configure-layout",
"displayName": "Configure Layout",
"plugin": "content-manager",
"subCategory": "components",
I18n/ permissions rework (#9535) * Add a domain layer for the permission, rework the engine handling of the permissions Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Add permissions-fields-to-properties migration for the admin Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Removes useless console.log Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove debug logLevel from provider-login.test.e2e.js Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Adds the new layout for the GET permissions, allow to subscribe to actionRegistered events, adds i18n handlers Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Fix typo Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update permissions validators Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update unit tests Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update integrations test + fix some validation issues Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Change plugins & settings section format for the permissions layout * only return locales property to localized subjects for the permission's layout * Do not send the locales property to the permission's layout when there is no locales created * Add the 'locales' property to publish & delete routes * Fix unwanted mutation of the sections builder states on multiple builds * Fix units tests with (new engine) * Fix admin-role e2e test - Add locales property to the update payload * fix e2e testsé * Update e2e snapshots * Fix unit test for i18n bootstrap * Add mocks for i18n/bootstrap test * Fix has-locale condition & updatePermission validator * Avoid mutation in migration, always authorize super admin for has-locales condition * Rework rbac domain objects, add a hook module and a provider factory * Remove old providers * Update the admin services & tests for the new rbac domain & providers * Fix tests, bootstrap functions & services following rbac domain rework * Update migration runner * PR comments Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove useless console.log * Fix sanitizeCondition bug * Section builder rework * Add test for the section-builder section & add jsdoc for the permission domain * pr comments (without the migrations) * fix fields-to-properties migration * Add jsdoc for the sections-builder * Moves createBoundAbstractDomain from permission domain to the engine service * Remove debug logLevel for admin role test (e2e) * Fix core-store * Fix hooks & move business logic from i18n bootstrap to dedicated services * add route get-non-localized-fields * use write and read permission * refacto * add input validator * add route doc * handle ST Co-authored-by: Pierre Noël <petersg83@gmail.com> Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
2021-03-25 14:59:44 +01:00
},
2022-08-29 13:55:28 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::content-manager.single-types.configure-view",
"displayName": "Configure view",
"plugin": "content-manager",
"subCategory": "single types",
I18n/ permissions rework (#9535) * Add a domain layer for the permission, rework the engine handling of the permissions Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Add permissions-fields-to-properties migration for the admin Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Removes useless console.log Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove debug logLevel from provider-login.test.e2e.js Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Adds the new layout for the GET permissions, allow to subscribe to actionRegistered events, adds i18n handlers Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Fix typo Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update permissions validators Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update unit tests Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update integrations test + fix some validation issues Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Change plugins & settings section format for the permissions layout * only return locales property to localized subjects for the permission's layout * Do not send the locales property to the permission's layout when there is no locales created * Add the 'locales' property to publish & delete routes * Fix unwanted mutation of the sections builder states on multiple builds * Fix units tests with (new engine) * Fix admin-role e2e test - Add locales property to the update payload * fix e2e testsé * Update e2e snapshots * Fix unit test for i18n bootstrap * Add mocks for i18n/bootstrap test * Fix has-locale condition & updatePermission validator * Avoid mutation in migration, always authorize super admin for has-locales condition * Rework rbac domain objects, add a hook module and a provider factory * Remove old providers * Update the admin services & tests for the new rbac domain & providers * Fix tests, bootstrap functions & services following rbac domain rework * Update migration runner * PR comments Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove useless console.log * Fix sanitizeCondition bug * Section builder rework * Add test for the section-builder section & add jsdoc for the permission domain * pr comments (without the migrations) * fix fields-to-properties migration * Add jsdoc for the sections-builder * Moves createBoundAbstractDomain from permission domain to the engine service * Remove debug logLevel for admin role test (e2e) * Fix core-store * Fix hooks & move business logic from i18n bootstrap to dedicated services * add route get-non-localized-fields * use write and read permission * refacto * add input validator * add route doc * handle ST Co-authored-by: Pierre Noël <petersg83@gmail.com> Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
2021-03-25 14:59:44 +01:00
},
2022-08-29 13:55:28 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::content-type-builder.read",
"displayName": "Read",
"plugin": "content-type-builder",
"subCategory": "general",
I18n/ permissions rework (#9535) * Add a domain layer for the permission, rework the engine handling of the permissions Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Add permissions-fields-to-properties migration for the admin Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Removes useless console.log Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove debug logLevel from provider-login.test.e2e.js Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Adds the new layout for the GET permissions, allow to subscribe to actionRegistered events, adds i18n handlers Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Fix typo Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update permissions validators Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update unit tests Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update integrations test + fix some validation issues Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Change plugins & settings section format for the permissions layout * only return locales property to localized subjects for the permission's layout * Do not send the locales property to the permission's layout when there is no locales created * Add the 'locales' property to publish & delete routes * Fix unwanted mutation of the sections builder states on multiple builds * Fix units tests with (new engine) * Fix admin-role e2e test - Add locales property to the update payload * fix e2e testsé * Update e2e snapshots * Fix unit test for i18n bootstrap * Add mocks for i18n/bootstrap test * Fix has-locale condition & updatePermission validator * Avoid mutation in migration, always authorize super admin for has-locales condition * Rework rbac domain objects, add a hook module and a provider factory * Remove old providers * Update the admin services & tests for the new rbac domain & providers * Fix tests, bootstrap functions & services following rbac domain rework * Update migration runner * PR comments Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove useless console.log * Fix sanitizeCondition bug * Section builder rework * Add test for the section-builder section & add jsdoc for the permission domain * pr comments (without the migrations) * fix fields-to-properties migration * Add jsdoc for the sections-builder * Moves createBoundAbstractDomain from permission domain to the engine service * Remove debug logLevel for admin role test (e2e) * Fix core-store * Fix hooks & move business logic from i18n bootstrap to dedicated services * add route get-non-localized-fields * use write and read permission * refacto * add input validator * add route doc * handle ST Co-authored-by: Pierre Noël <petersg83@gmail.com> Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
2021-03-25 14:59:44 +01:00
},
2022-08-29 13:55:28 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::documentation.read",
"displayName": "Access the Documentation",
"plugin": "documentation",
"subCategory": "general",
I18n/ permissions rework (#9535) * Add a domain layer for the permission, rework the engine handling of the permissions Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Add permissions-fields-to-properties migration for the admin Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Removes useless console.log Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove debug logLevel from provider-login.test.e2e.js Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Adds the new layout for the GET permissions, allow to subscribe to actionRegistered events, adds i18n handlers Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Fix typo Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update permissions validators Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update unit tests Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Update integrations test + fix some validation issues Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Change plugins & settings section format for the permissions layout * only return locales property to localized subjects for the permission's layout * Do not send the locales property to the permission's layout when there is no locales created * Add the 'locales' property to publish & delete routes * Fix unwanted mutation of the sections builder states on multiple builds * Fix units tests with (new engine) * Fix admin-role e2e test - Add locales property to the update payload * fix e2e testsé * Update e2e snapshots * Fix unit test for i18n bootstrap * Add mocks for i18n/bootstrap test * Fix has-locale condition & updatePermission validator * Avoid mutation in migration, always authorize super admin for has-locales condition * Rework rbac domain objects, add a hook module and a provider factory * Remove old providers * Update the admin services & tests for the new rbac domain & providers * Fix tests, bootstrap functions & services following rbac domain rework * Update migration runner * PR comments Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu> * Remove useless console.log * Fix sanitizeCondition bug * Section builder rework * Add test for the section-builder section & add jsdoc for the permission domain * pr comments (without the migrations) * fix fields-to-properties migration * Add jsdoc for the sections-builder * Moves createBoundAbstractDomain from permission domain to the engine service * Remove debug logLevel for admin role test (e2e) * Fix core-store * Fix hooks & move business logic from i18n bootstrap to dedicated services * add route get-non-localized-fields * use write and read permission * refacto * add input validator * add route doc * handle ST Co-authored-by: Pierre Noël <petersg83@gmail.com> Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>
2021-03-25 14:59:44 +01:00
},
2022-08-29 13:55:28 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::documentation.settings.regenerate",
"displayName": "Regenerate",
"plugin": "documentation",
"subCategory": "general",
2021-01-28 16:07:54 +01:00
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::documentation.settings.update",
2021-01-28 16:07:54 +01:00
"displayName": "Update and delete",
2022-09-08 00:08:59 +02:00
"plugin": "documentation",
"subCategory": "general",
2021-01-28 16:07:54 +01:00
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::upload.assets.copy-link",
2021-01-28 16:07:54 +01:00
"displayName": "Copy link",
2022-09-08 00:08:59 +02:00
"plugin": "upload",
2021-01-28 16:07:54 +01:00
"subCategory": "assets",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::upload.assets.create",
2021-01-28 16:07:54 +01:00
"displayName": "Create (upload)",
2022-09-08 00:08:59 +02:00
"plugin": "upload",
2021-01-28 16:07:54 +01:00
"subCategory": "assets",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::upload.assets.download",
2021-01-28 16:07:54 +01:00
"displayName": "Download",
2022-09-08 00:08:59 +02:00
"plugin": "upload",
2021-01-28 16:07:54 +01:00
"subCategory": "assets",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::upload.assets.update",
2021-01-28 16:07:54 +01:00
"displayName": "Update (crop, details, replace) + delete",
2022-09-08 00:08:59 +02:00
"plugin": "upload",
2021-01-28 16:07:54 +01:00
"subCategory": "assets",
},
{
"action": "plugin::upload.configure-view",
"displayName": "Configure view",
"plugin": "upload",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::upload.read",
2021-01-28 16:07:54 +01:00
"displayName": "Access the Media Library",
2022-09-08 00:08:59 +02:00
"plugin": "upload",
2021-01-28 16:07:54 +01:00
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.advanced-settings.read",
2021-01-28 16:07:54 +01:00
"displayName": "Read",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "advancedSettings",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.advanced-settings.update",
2021-01-28 16:07:54 +01:00
"displayName": "Edit",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "advancedSettings",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.email-templates.read",
2021-01-28 16:07:54 +01:00
"displayName": "Read",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "emailTemplates",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.email-templates.update",
2021-01-28 16:07:54 +01:00
"displayName": "Edit",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "emailTemplates",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.providers.read",
2021-01-28 16:07:54 +01:00
"displayName": "Read",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "providers",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.providers.update",
2021-01-28 16:07:54 +01:00
"displayName": "Edit",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "providers",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.roles.create",
2021-01-28 16:07:54 +01:00
"displayName": "Create",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "roles",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.roles.delete",
2021-01-28 16:07:54 +01:00
"displayName": "Delete",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "roles",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.roles.read",
2021-01-28 16:07:54 +01:00
"displayName": "Read",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "roles",
},
2022-09-08 00:08:59 +02:00
{
2021-08-06 18:09:49 +02:00
"action": "plugin::users-permissions.roles.update",
2021-01-28 16:07:54 +01:00
"displayName": "Update",
2022-09-08 00:08:59 +02:00
"plugin": "users-permissions",
2021-01-28 16:07:54 +01:00
"subCategory": "roles",
},
],
2022-09-08 00:08:59 +02:00
"settings": [
{
2022-08-25 10:00:52 +02:00
"action": "admin::api-tokens.access",
"category": "api tokens",
"displayName": "Access the API tokens settings page",
"subCategory": "api Tokens",
},
2022-09-08 00:08:59 +02:00
{
"action": "admin::api-tokens.create",
"category": "api tokens",
"displayName": "Create (generate)",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
"action": "admin::api-tokens.delete",
"category": "api tokens",
"displayName": "Delete (revoke)",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
"action": "admin::api-tokens.read",
"category": "api tokens",
"displayName": "Read",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
"action": "admin::api-tokens.regenerate",
"category": "api tokens",
2022-09-08 00:08:59 +02:00
"displayName": "Regenerate",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
"action": "admin::api-tokens.update",
"category": "api tokens",
2022-09-08 00:08:59 +02:00
"displayName": "Update",
"subCategory": "general",
},
2023-03-06 21:46:45 +01:00
{
"action": "admin::audit-logs.read",
"category": "audit logs",
"displayName": "Read",
"subCategory": "options",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::marketplace.read",
"category": "plugins and marketplace",
"displayName": "Access the marketplace",
"subCategory": "marketplace",
},
2022-09-08 00:08:59 +02:00
{
"action": "admin::project-settings.read",
"category": "project",
"displayName": "Read the project level settings",
"subCategory": "general",
},
{
2022-03-29 16:55:04 +02:00
"action": "admin::project-settings.update",
"category": "project",
"displayName": "Update the project level settings",
"subCategory": "general",
},
2023-03-06 21:46:45 +01:00
{
"action": "admin::provider-login.read",
"category": "single sign on",
"displayName": "Read",
"subCategory": "options",
},
{
"action": "admin::provider-login.update",
"category": "single sign on",
"displayName": "Update",
"subCategory": "options",
},
{
"action": "admin::review-workflows.create",
"category": "review workflows",
"displayName": "Create",
"subCategory": "options",
},
2023-05-19 15:54:03 +02:00
{
"action": "admin::review-workflows.delete",
"category": "review workflows",
"displayName": "Delete",
"subCategory": "options",
},
{
"action": "admin::review-workflows.read",
"category": "review workflows",
"displayName": "Read",
"subCategory": "options",
},
2023-05-15 10:45:46 +02:00
{
"action": "admin::review-workflows.update",
"category": "review workflows",
"displayName": "Update",
"subCategory": "options",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::roles.create",
"category": "users and roles",
"displayName": "Create",
"subCategory": "roles",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::roles.delete",
"category": "users and roles",
"displayName": "Delete",
"subCategory": "roles",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::roles.read",
"category": "users and roles",
"displayName": "Read",
"subCategory": "roles",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::roles.update",
"category": "users and roles",
"displayName": "Update",
"subCategory": "roles",
},
2023-03-06 21:46:45 +01:00
{
"action": "admin::transfer.tokens.access",
"category": "transfer tokens",
"displayName": "Access the transfer tokens settings page",
"subCategory": "transfer tokens",
},
{
"action": "admin::transfer.tokens.create",
"category": "transfer tokens",
"displayName": "Create (generate)",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.delete",
"category": "transfer tokens",
"displayName": "Delete (revoke)",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.read",
"category": "transfer tokens",
"displayName": "Read",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.regenerate",
"category": "transfer tokens",
"displayName": "Regenerate",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.update",
"category": "transfer tokens",
"displayName": "Update",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::users.create",
"category": "users and roles",
"displayName": "Create (invite)",
"subCategory": "users",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::users.delete",
"category": "users and roles",
"displayName": "Delete",
"subCategory": "users",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::users.read",
"category": "users and roles",
"displayName": "Read",
"subCategory": "users",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::users.update",
"category": "users and roles",
"displayName": "Update",
"subCategory": "users",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::webhooks.create",
"category": "webhooks",
"displayName": "Create",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::webhooks.delete",
"category": "webhooks",
"displayName": "Delete",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::webhooks.read",
"category": "webhooks",
"displayName": "Read",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2021-01-28 16:07:54 +01:00
"action": "admin::webhooks.update",
"category": "webhooks",
"displayName": "Update",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
"action": "plugin::documentation.settings.read",
"category": "documentation",
"displayName": "Access the documentation settings page",
"subCategory": "general",
},
{
2021-08-06 18:09:49 +02:00
"action": "plugin::email.settings.read",
2021-03-08 11:03:31 +01:00
"category": "email",
"displayName": "Access the Email Settings page",
"subCategory": "general",
},
2022-09-08 00:08:59 +02:00
{
2023-03-06 21:46:45 +01:00
"action": "plugin::i18n.locale.create",
"category": "Internationalization",
"displayName": "Create",
"subCategory": "Locales",
},
{
"action": "plugin::i18n.locale.delete",
"category": "Internationalization",
"displayName": "Delete",
"subCategory": "Locales",
},
{
"action": "plugin::i18n.locale.read",
"category": "Internationalization",
"displayName": "Read",
"subCategory": "Locales",
},
{
"action": "plugin::i18n.locale.update",
"category": "Internationalization",
"displayName": "Update",
"subCategory": "Locales",
},
{
"action": "plugin::upload.settings.read",
"category": "media library",
"displayName": "Access the Media Library settings page",
"subCategory": "general",
},
],
"singleTypes": [
[
{
"actionId": "plugin::content-manager.explorer.create",
"applyToProperties": [
"fields",
"locales",
],
"label": "Create",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.read",
"applyToProperties": [
"fields",
"locales",
],
"label": "Read",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.update",
"applyToProperties": [
"fields",
"locales",
],
"label": "Update",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.delete",
"applyToProperties": [
"locales",
],
"label": "Delete",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.publish",
"applyToProperties": [
"locales",
],
"label": "Publish",
"subjects": [],
},
],
[],
],
},
}
`);
} else {
expect(sortedData).toMatchInlineSnapshot(`
{
"conditions": [
{
"category": "default",
"displayName": "Is creator",
"id": "admin::is-creator",
},
{
"category": "default",
"displayName": "Has same role as creator",
"id": "admin::has-same-role-as-creator",
},
],
"sections": {
"collectionTypes": [
[
{
"actionId": "plugin::content-manager.explorer.create",
"applyToProperties": [
"fields",
"locales",
],
"label": "Create",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.read",
"applyToProperties": [
"fields",
"locales",
],
"label": "Read",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.update",
"applyToProperties": [
"fields",
"locales",
],
"label": "Update",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.delete",
"applyToProperties": [
"locales",
],
"label": "Delete",
"subjects": [
"plugin::users-permissions.user",
],
},
{
"actionId": "plugin::content-manager.explorer.publish",
"applyToProperties": [
"locales",
],
"label": "Publish",
"subjects": [],
},
],
[
{
"label": "user",
"properties": [
{
"children": [
{
"label": "username",
"required": true,
"value": "username",
},
{
"label": "email",
"required": true,
"value": "email",
},
{
"label": "provider",
"value": "provider",
},
{
"label": "password",
"value": "password",
},
{
"label": "resetPasswordToken",
"value": "resetPasswordToken",
},
{
"label": "confirmationToken",
"value": "confirmationToken",
},
{
"label": "confirmed",
"value": "confirmed",
},
{
"label": "blocked",
"value": "blocked",
},
{
"label": "role",
"value": "role",
},
],
"label": "Fields",
"value": "fields",
},
],
"uid": "plugin::users-permissions.user",
},
],
],
"plugins": [
{
"action": "plugin::content-manager.collection-types.configure-view",
"displayName": "Configure view",
"plugin": "content-manager",
"subCategory": "collection types",
},
{
"action": "plugin::content-manager.components.configure-layout",
"displayName": "Configure Layout",
"plugin": "content-manager",
"subCategory": "components",
},
{
"action": "plugin::content-manager.single-types.configure-view",
"displayName": "Configure view",
"plugin": "content-manager",
"subCategory": "single types",
},
{
"action": "plugin::content-type-builder.read",
"displayName": "Read",
"plugin": "content-type-builder",
"subCategory": "general",
},
{
"action": "plugin::documentation.read",
"displayName": "Access the Documentation",
"plugin": "documentation",
"subCategory": "general",
},
{
"action": "plugin::documentation.settings.regenerate",
"displayName": "Regenerate",
"plugin": "documentation",
"subCategory": "general",
},
{
"action": "plugin::documentation.settings.update",
"displayName": "Update and delete",
"plugin": "documentation",
"subCategory": "general",
},
{
"action": "plugin::upload.assets.copy-link",
"displayName": "Copy link",
"plugin": "upload",
"subCategory": "assets",
},
{
"action": "plugin::upload.assets.create",
"displayName": "Create (upload)",
"plugin": "upload",
"subCategory": "assets",
},
{
"action": "plugin::upload.assets.download",
"displayName": "Download",
"plugin": "upload",
"subCategory": "assets",
},
{
"action": "plugin::upload.assets.update",
"displayName": "Update (crop, details, replace) + delete",
"plugin": "upload",
"subCategory": "assets",
},
{
"action": "plugin::upload.configure-view",
"displayName": "Configure view",
"plugin": "upload",
"subCategory": "general",
},
{
"action": "plugin::upload.read",
"displayName": "Access the Media Library",
"plugin": "upload",
"subCategory": "general",
},
{
"action": "plugin::users-permissions.advanced-settings.read",
"displayName": "Read",
"plugin": "users-permissions",
"subCategory": "advancedSettings",
},
{
"action": "plugin::users-permissions.advanced-settings.update",
"displayName": "Edit",
"plugin": "users-permissions",
"subCategory": "advancedSettings",
},
{
"action": "plugin::users-permissions.email-templates.read",
"displayName": "Read",
"plugin": "users-permissions",
"subCategory": "emailTemplates",
},
{
"action": "plugin::users-permissions.email-templates.update",
"displayName": "Edit",
"plugin": "users-permissions",
"subCategory": "emailTemplates",
},
{
"action": "plugin::users-permissions.providers.read",
"displayName": "Read",
"plugin": "users-permissions",
"subCategory": "providers",
},
{
"action": "plugin::users-permissions.providers.update",
"displayName": "Edit",
"plugin": "users-permissions",
"subCategory": "providers",
},
{
"action": "plugin::users-permissions.roles.create",
"displayName": "Create",
"plugin": "users-permissions",
"subCategory": "roles",
},
{
"action": "plugin::users-permissions.roles.delete",
"displayName": "Delete",
"plugin": "users-permissions",
"subCategory": "roles",
},
{
"action": "plugin::users-permissions.roles.read",
"displayName": "Read",
"plugin": "users-permissions",
"subCategory": "roles",
},
{
"action": "plugin::users-permissions.roles.update",
"displayName": "Update",
"plugin": "users-permissions",
"subCategory": "roles",
},
],
"settings": [
{
"action": "admin::api-tokens.access",
"category": "api tokens",
"displayName": "Access the API tokens settings page",
"subCategory": "api Tokens",
},
{
"action": "admin::api-tokens.create",
"category": "api tokens",
"displayName": "Create (generate)",
"subCategory": "general",
},
{
"action": "admin::api-tokens.delete",
"category": "api tokens",
"displayName": "Delete (revoke)",
"subCategory": "general",
},
{
"action": "admin::api-tokens.read",
"category": "api tokens",
"displayName": "Read",
"subCategory": "general",
},
{
"action": "admin::api-tokens.regenerate",
"category": "api tokens",
"displayName": "Regenerate",
"subCategory": "general",
},
{
"action": "admin::api-tokens.update",
"category": "api tokens",
"displayName": "Update",
"subCategory": "general",
},
{
"action": "admin::marketplace.read",
"category": "plugins and marketplace",
"displayName": "Access the marketplace",
"subCategory": "marketplace",
},
{
"action": "admin::project-settings.read",
"category": "project",
"displayName": "Read the project level settings",
"subCategory": "general",
},
{
"action": "admin::project-settings.update",
"category": "project",
"displayName": "Update the project level settings",
"subCategory": "general",
},
{
"action": "admin::roles.create",
"category": "users and roles",
"displayName": "Create",
"subCategory": "roles",
},
{
"action": "admin::roles.delete",
"category": "users and roles",
"displayName": "Delete",
"subCategory": "roles",
},
{
"action": "admin::roles.read",
"category": "users and roles",
"displayName": "Read",
"subCategory": "roles",
},
{
"action": "admin::roles.update",
"category": "users and roles",
"displayName": "Update",
"subCategory": "roles",
},
{
"action": "admin::transfer.tokens.access",
"category": "transfer tokens",
"displayName": "Access the transfer tokens settings page",
"subCategory": "transfer tokens",
},
{
"action": "admin::transfer.tokens.create",
"category": "transfer tokens",
"displayName": "Create (generate)",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.delete",
"category": "transfer tokens",
"displayName": "Delete (revoke)",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.read",
"category": "transfer tokens",
"displayName": "Read",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.regenerate",
"category": "transfer tokens",
"displayName": "Regenerate",
"subCategory": "general",
},
{
"action": "admin::transfer.tokens.update",
"category": "transfer tokens",
"displayName": "Update",
"subCategory": "general",
},
{
"action": "admin::users.create",
"category": "users and roles",
"displayName": "Create (invite)",
"subCategory": "users",
},
{
"action": "admin::users.delete",
"category": "users and roles",
"displayName": "Delete",
"subCategory": "users",
},
{
"action": "admin::users.read",
"category": "users and roles",
"displayName": "Read",
"subCategory": "users",
},
{
"action": "admin::users.update",
"category": "users and roles",
"displayName": "Update",
"subCategory": "users",
},
{
"action": "admin::webhooks.create",
"category": "webhooks",
"displayName": "Create",
"subCategory": "general",
},
{
"action": "admin::webhooks.delete",
"category": "webhooks",
"displayName": "Delete",
"subCategory": "general",
},
{
"action": "admin::webhooks.read",
"category": "webhooks",
"displayName": "Read",
"subCategory": "general",
},
{
"action": "admin::webhooks.update",
"category": "webhooks",
"displayName": "Update",
"subCategory": "general",
},
{
"action": "plugin::documentation.settings.read",
"category": "documentation",
"displayName": "Access the documentation settings page",
"subCategory": "general",
},
{
"action": "plugin::email.settings.read",
"category": "email",
"displayName": "Access the Email Settings page",
"subCategory": "general",
},
{
"action": "plugin::i18n.locale.create",
"category": "Internationalization",
"displayName": "Create",
"subCategory": "Locales",
},
{
"action": "plugin::i18n.locale.delete",
"category": "Internationalization",
"displayName": "Delete",
"subCategory": "Locales",
},
{
"action": "plugin::i18n.locale.read",
"category": "Internationalization",
"displayName": "Read",
"subCategory": "Locales",
},
{
"action": "plugin::i18n.locale.update",
"category": "Internationalization",
"displayName": "Update",
"subCategory": "Locales",
},
{
"action": "plugin::upload.settings.read",
"category": "media library",
"displayName": "Access the Media Library settings page",
"subCategory": "general",
},
],
"singleTypes": [
[
{
"actionId": "plugin::content-manager.explorer.create",
"applyToProperties": [
"fields",
"locales",
],
"label": "Create",
"subjects": [
"plugin::users-permissions.user",
],
2022-09-08 00:08:59 +02:00
},
{
2023-03-06 21:46:45 +01:00
"actionId": "plugin::content-manager.explorer.read",
"applyToProperties": [
"fields",
"locales",
],
"label": "Read",
"subjects": [
"plugin::users-permissions.user",
],
2022-09-08 00:08:59 +02:00
},
{
2023-03-06 21:46:45 +01:00
"actionId": "plugin::content-manager.explorer.update",
"applyToProperties": [
"fields",
"locales",
],
"label": "Update",
"subjects": [
"plugin::users-permissions.user",
],
2022-09-08 00:08:59 +02:00
},
{
2023-03-06 21:46:45 +01:00
"actionId": "plugin::content-manager.explorer.delete",
"applyToProperties": [
"locales",
],
"label": "Delete",
"subjects": [
"plugin::users-permissions.user",
],
2022-09-08 00:08:59 +02:00
},
{
2023-03-06 21:46:45 +01:00
"actionId": "plugin::content-manager.explorer.publish",
"applyToProperties": [
"locales",
],
"label": "Publish",
"subjects": [],
2021-01-28 16:07:54 +01:00
},
],
2023-03-06 21:46:45 +01:00
[],
],
},
}
`);
}
});
});