@strapi/admin 4.9.0-exp.90df253ba90fd6879eb56a720a1f80d04ff745b8 → 4.10.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/content-manager/components/DynamicTable/CellContent/PublicationState/PublicationState.js +26 -0
- package/admin/src/content-manager/components/DynamicTable/CellContent/PublicationState/index.js +1 -0
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStage.js +15 -0
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +1 -0
- package/admin/src/content-manager/components/DynamicTable/index.js +43 -49
- package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +2 -0
- package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
- package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
- package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
- package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
- package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
- package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
- package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
- package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
- package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
- package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
- package/admin/src/content-manager/pages/EditView/Information/index.js +77 -53
- package/admin/src/content-manager/pages/EditView/InformationBox/InformationBoxCE.js +13 -0
- package/admin/src/content-manager/pages/EditView/InformationBox/index.js +3 -0
- package/admin/src/content-manager/pages/EditView/index.js +3 -4
- package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
- package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
- package/admin/src/content-manager/pages/ListView/index.js +6 -9
- package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
- package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
- package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
- package/admin/src/content-manager/utils/getFieldName.js +1 -1
- package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
- package/admin/src/content-manager/utils/paths.js +1 -1
- package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
- package/admin/src/hooks/useRegenerate/index.js +1 -1
- package/admin/src/hooks/useSettingsForm/index.js +3 -3
- package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
- package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
- package/admin/src/index.js +1 -0
- package/admin/src/pages/AuthPage/reducer.js +1 -1
- package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +5 -7
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +1 -1
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +0 -41
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +4 -6
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +0 -1
- package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
- package/admin/src/permissions/index.js +1 -1
- package/admin/src/translations/en.json +6 -0
- package/admin/src/utils/getAttributesToDisplay.js +2 -4
- package/admin/src/utils/getExistingActions.js +1 -3
- package/admin/src/utils/sortLinks.js +1 -1
- package/build/{8580.b0dcf37c.chunk.js → 2263.4c5916f9.chunk.js} +61 -61
- package/build/4649.213b8a3b.chunk.js +30 -0
- package/build/6985.66cca29c.chunk.js +1 -0
- package/build/7259.aefb51e8.chunk.js +1 -0
- package/build/{7112.2bf13da3.chunk.js → 9505.dbe702ab.chunk.js} +6 -6
- package/build/{Admin-authenticatedApp.5aa08bf5.chunk.js → Admin-authenticatedApp.f50ad423.chunk.js} +3 -3
- package/build/{Admin_marketplace.0f6c8ee2.chunk.js → Admin_marketplace.02608d56.chunk.js} +1 -1
- package/build/{Admin_profilePage.d2a8f9ab.chunk.js → Admin_profilePage.76afeca0.chunk.js} +1 -1
- package/build/Admin_settingsPage.147755cd.chunk.js +9 -0
- package/build/admin-app.55dd7921.chunk.js +112 -0
- package/build/admin-edit-roles-page.cf543488.chunk.js +216 -0
- package/build/admin-edit-users.31c20712.chunk.js +10 -0
- package/build/admin-roles-list.489c501f.chunk.js +2 -0
- package/build/{admin-users.af8c3123.chunk.js → admin-users.3e111a7d.chunk.js} +1 -1
- package/build/{api-tokens-create-page.2a6e22bd.chunk.js → api-tokens-create-page.4328b852.chunk.js} +1 -1
- package/build/{api-tokens-edit-page.fa38cd63.chunk.js → api-tokens-edit-page.bce5050f.chunk.js} +1 -1
- package/build/content-manager.4480ae88.chunk.js +1137 -0
- package/build/content-type-builder-translation-en-json.7961593e.chunk.js +1 -0
- package/build/content-type-builder.af9abf1e.chunk.js +126 -0
- package/build/en-json.697b4bcf.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/main.af8c0f31.js +3790 -0
- package/build/review-workflows-settings.7a7dc773.chunk.js +57 -0
- package/build/runtime~main.5a95bee6.js +2 -0
- package/build/sso-settings-page.272b87c8.chunk.js +1 -0
- package/build/{upload-settings.0200561d.chunk.js → upload-settings.0875e973.chunk.js} +1 -1
- package/build/upload-translation-fr-json.baab9911.chunk.js +1 -0
- package/build/users-advanced-settings-page.1d3c14c7.chunk.js +1 -0
- package/build/{users-email-settings-page.a3c80419.chunk.js → users-email-settings-page.e8db68c4.chunk.js} +1 -1
- package/build/users-providers-settings-page.14cac425.chunk.js +1 -0
- package/build/users-roles-settings-page.2ea4de84.chunk.js +30 -0
- package/build/{webhook-edit-page.a2a2b7bb.chunk.js → webhook-edit-page.329141a5.chunk.js} +3 -3
- package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +92 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/index.js +3 -0
- package/ee/admin/hooks/useSettingsMenu/utils/customAdminLinks.js +12 -12
- package/ee/admin/hooks/useSettingsMenu/utils/customGlobalLinks.js +21 -13
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +195 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +42 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/AddStage.js +87 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage/index.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +90 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/index.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +92 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/index.js +1 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +6 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +35 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/index.js +3 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +121 -0
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/getWorkflowValidationSchema.js +25 -0
- package/ee/admin/pages/SettingsPage/utils/customRoutes.js +16 -2
- package/ee/admin/permissions/customPermissions.js +3 -0
- package/ee/server/bootstrap.js +16 -0
- package/ee/server/config/admin-actions.js +10 -0
- package/ee/server/constants/default-stages.json +14 -0
- package/ee/server/constants/default-workflow.json +1 -0
- package/ee/server/constants/workflows.js +8 -0
- package/ee/server/content-types/index.js +9 -0
- package/ee/server/content-types/workflow/index.js +34 -0
- package/ee/server/content-types/workflow-stage/index.js +41 -0
- package/ee/server/controllers/index.js +2 -0
- package/ee/server/controllers/workflows/index.js +36 -0
- package/ee/server/controllers/workflows/stages/index.js +95 -0
- package/ee/server/index.js +1 -0
- package/ee/server/middlewares/review-workflows.js +40 -0
- package/ee/server/migrations/review-workflows.js +39 -0
- package/ee/server/register.js +7 -0
- package/ee/server/routes/index.js +104 -0
- package/ee/server/services/index.js +4 -0
- package/ee/server/services/review-workflows/entity-service-decorator.js +42 -0
- package/ee/server/services/review-workflows/review-workflows.js +175 -0
- package/ee/server/services/review-workflows/stages.js +148 -0
- package/ee/server/services/review-workflows/workflows.js +25 -0
- package/ee/server/utils/index.js +8 -0
- package/ee/server/utils/persisted-tables.js +49 -0
- package/ee/server/utils/review-workflows.js +25 -0
- package/ee/server/utils/test.js +11 -0
- package/ee/server/validation/review-workflows.js +24 -0
- package/package.json +13 -13
- package/server/controllers/transfer/runner.js +2 -4
- package/server/routes/transfer.js +4 -13
- package/server/services/constants.js +0 -4
- package/server/services/permission/permissions-manager/sanitize.js +2 -0
- package/server/services/transfer/permission.js +1 -1
- package/server/services/transfer/token.js +31 -33
- package/server/validation/transfer/token.js +2 -10
- package/build/2637.679b590b.chunk.js +0 -1
- package/build/5563.451e91ee.chunk.js +0 -30
- package/build/7259.7744297b.chunk.js +0 -1
- package/build/Admin_settingsPage.489ec4eb.chunk.js +0 -9
- package/build/admin-app.4b313104.chunk.js +0 -112
- package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
- package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
- package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
- package/build/content-manager.f530e141.chunk.js +0 -1139
- package/build/content-type-builder-translation-en-json.e577d595.chunk.js +0 -1
- package/build/content-type-builder.6ecd201d.chunk.js +0 -126
- package/build/en-json.01a88a30.chunk.js +0 -1
- package/build/main.43b93ff3.js +0 -3843
- package/build/runtime~main.a40b1b57.js +0 -2
- package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
- package/build/upload-translation-fr-json.84429734.chunk.js +0 -1
- package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
- package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
- package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const {
|
|
4
|
-
require('@strapi/data-transfer').strapi.remote.handlers;
|
|
3
|
+
const { createTransferHandler } = require('@strapi/data-transfer').strapi.remote.handlers;
|
|
5
4
|
const {
|
|
6
5
|
errors: { UnauthorizedError },
|
|
7
6
|
} = require('@strapi/utils');
|
|
@@ -23,6 +22,5 @@ const verify = async (ctx, scope) => {
|
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
module.exports = {
|
|
26
|
-
|
|
27
|
-
pull: createPullController({ verify }),
|
|
25
|
+
connect: createTransferHandler({ verify }),
|
|
28
26
|
};
|
|
@@ -3,26 +3,17 @@
|
|
|
3
3
|
const dataTransferAuthStrategy = require('../strategies/data-transfer');
|
|
4
4
|
|
|
5
5
|
module.exports = [
|
|
6
|
-
// Transfer
|
|
6
|
+
// Transfer route
|
|
7
7
|
{
|
|
8
8
|
method: 'GET',
|
|
9
|
-
path: '/transfer/runner/
|
|
10
|
-
handler: 'transfer.runner-
|
|
9
|
+
path: '/transfer/runner/connect',
|
|
10
|
+
handler: 'transfer.runner-connect',
|
|
11
11
|
config: {
|
|
12
12
|
middlewares: ['admin::data-transfer'],
|
|
13
|
+
// TODO: Allow not passing any scope <> Add a way to prevent assigning one by default
|
|
13
14
|
auth: { strategies: [dataTransferAuthStrategy], scope: ['push'] },
|
|
14
15
|
},
|
|
15
16
|
},
|
|
16
|
-
// Transfer Pull
|
|
17
|
-
{
|
|
18
|
-
method: 'GET',
|
|
19
|
-
path: '/transfer/runner/pull',
|
|
20
|
-
handler: 'transfer.runner-pull',
|
|
21
|
-
config: {
|
|
22
|
-
middlewares: ['admin::data-transfer'],
|
|
23
|
-
auth: { strategies: [dataTransferAuthStrategy], scope: ['pull'] },
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
17
|
// Transfer Tokens
|
|
27
18
|
{
|
|
28
19
|
method: 'POST',
|
|
@@ -34,6 +34,7 @@ const {
|
|
|
34
34
|
ID_ATTRIBUTE,
|
|
35
35
|
CREATED_AT_ATTRIBUTE,
|
|
36
36
|
UPDATED_AT_ATTRIBUTE,
|
|
37
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
37
38
|
CREATED_BY_ATTRIBUTE,
|
|
38
39
|
UPDATED_BY_ATTRIBUTE,
|
|
39
40
|
} = constants;
|
|
@@ -261,6 +262,7 @@ module.exports = ({ action, ability, model }) => {
|
|
|
261
262
|
...COMPONENT_FIELDS,
|
|
262
263
|
CREATED_AT_ATTRIBUTE,
|
|
263
264
|
UPDATED_AT_ATTRIBUTE,
|
|
265
|
+
PUBLISHED_AT_ATTRIBUTE,
|
|
264
266
|
]);
|
|
265
267
|
};
|
|
266
268
|
|
|
@@ -149,39 +149,37 @@ const update = async (id, attributes) => {
|
|
|
149
149
|
},
|
|
150
150
|
});
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
);
|
|
184
|
-
}
|
|
152
|
+
const currentPermissionsResult = await strapi.entityService.load(
|
|
153
|
+
TRANSFER_TOKEN_UID,
|
|
154
|
+
updatedToken,
|
|
155
|
+
'permissions'
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
const currentPermissions = map('action', currentPermissionsResult || []);
|
|
159
|
+
const newPermissions = uniq(attributes.permissions);
|
|
160
|
+
|
|
161
|
+
const actionsToDelete = difference(currentPermissions, newPermissions);
|
|
162
|
+
const actionsToAdd = difference(newPermissions, currentPermissions);
|
|
163
|
+
|
|
164
|
+
// TODO: improve efficiency here
|
|
165
|
+
// method using a loop -- works but very inefficient
|
|
166
|
+
await Promise.all(
|
|
167
|
+
actionsToDelete.map((action) =>
|
|
168
|
+
strapi.query(TRANSFER_TOKEN_PERMISSION_UID).delete({
|
|
169
|
+
where: { action, token: id },
|
|
170
|
+
})
|
|
171
|
+
)
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
// TODO: improve efficiency here
|
|
175
|
+
// using a loop -- works but very inefficient
|
|
176
|
+
await Promise.all(
|
|
177
|
+
actionsToAdd.map((action) =>
|
|
178
|
+
strapi.query(TRANSFER_TOKEN_PERMISSION_UID).create({
|
|
179
|
+
data: { action, token: id },
|
|
180
|
+
})
|
|
181
|
+
)
|
|
182
|
+
);
|
|
185
183
|
|
|
186
184
|
// retrieve permissions
|
|
187
185
|
const permissionsFromDb = await strapi.entityService.load(
|
|
@@ -8,11 +8,7 @@ const transferTokenCreationSchema = yup
|
|
|
8
8
|
.shape({
|
|
9
9
|
name: yup.string().min(1).required(),
|
|
10
10
|
description: yup.string().optional(),
|
|
11
|
-
permissions: yup
|
|
12
|
-
.array()
|
|
13
|
-
.min(1)
|
|
14
|
-
.of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))
|
|
15
|
-
.required(),
|
|
11
|
+
permissions: yup.array().of(yup.string()).nullable(),
|
|
16
12
|
lifespan: yup
|
|
17
13
|
.number()
|
|
18
14
|
.min(1)
|
|
@@ -27,11 +23,7 @@ const transferTokenUpdateSchema = yup
|
|
|
27
23
|
.shape({
|
|
28
24
|
name: yup.string().min(1).notNull(),
|
|
29
25
|
description: yup.string().nullable(),
|
|
30
|
-
permissions: yup
|
|
31
|
-
.array()
|
|
32
|
-
.min(1)
|
|
33
|
-
.of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))
|
|
34
|
-
.nullable(),
|
|
26
|
+
permissions: yup.array().of(yup.string()).nullable(),
|
|
35
27
|
})
|
|
36
28
|
.noUnknown()
|
|
37
29
|
.strict();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2637],{88058:function(u,v,n){var t=n(87650);function o(e,i){var a=e==null?0:e.length;return!!a&&t(e,i,0)>-1}u.exports=o},37431:function(u){function v(n,t,o){for(var e=-1,i=n==null?0:n.length;++e<i;)if(o(t,n[e]))return!0;return!1}u.exports=v},23089:function(u,v,n){var t=n(61712),o=t("length");u.exports=o},56671:function(u,v,n){var t=n(35897),o=n(74741),e=o(t);u.exports=e},60528:function(u){function v(n,t,o,e){for(var i=n.length,a=o+(e?1:-1);e?a--:++a<i;)if(t(n[a],a,n))return a;return-1}u.exports=v},87650:function(u,v,n){var t=n(60528),o=n(25556),e=n(54256);function i(a,p,d){return p===p?e(a,p,d):t(a,o,d)}u.exports=i},25556:function(u){function v(n){return n!==n}u.exports=v},91131:function(u,v,n){var t=n(94318),o=n(3387),e="[object RegExp]";function i(a){return o(a)&&t(a)==e}u.exports=i},52920:function(u,v,n){var t=n(56671),o=n(81580);function e(i,a){var p=-1,d=o(i)?Array(i.length):[];return t(i,function(S,E,O){d[++p]=a(S,E,O)}),d}u.exports=e},50690:function(u,v,n){var t=n(26460),o=n(80166),e=n(88904),i=n(52920),a=n(36024),p=n(76535),d=n(1397),S=n(15362),E=n(77236);function O(g,r,s){r.length?r=t(r,function(c){return E(c)?function(x){return o(x,c.length===1?c[0]:c)}:c}):r=[S];var f=-1;r=t(r,p(e));var b=i(g,function(c,x,l){var h=t(r,function(m){return m(c)});return{criteria:h,index:++f,value:c}});return a(b,function(c,x){return d(c,x,s)})}u.exports=O},36024:function(u){function v(n,t){var o=n.length;for(n.sort(t);o--;)n[o]=n[o].value;return n}u.exports=v},84351:function(u,v,n){var t=n(61124),o=n(88058),e=n(37431),i=n(30555),a=n(58491),p=n(66350),d=200;function S(E,O,g){var r=-1,s=o,f=E.length,b=!0,c=[],x=c;if(g)b=!1,s=e;else if(f>=d){var l=O?null:a(E);if(l)return p(l);b=!1,s=i,x=new t}else x=O?[]:c;n:for(;++r<f;){var h=E[r],m=O?O(h):h;if(h=g||h!==0?h:0,b&&m===m){for(var y=x.length;y--;)if(x[y]===m)continue n;O&&x.push(m),c.push(h)}else s(x,m,g)||(x!==c&&x.push(m),c.push(h))}return c}u.exports=S},40709:function(u,v,n){var t=n(22945);function o(e,i){if(e!==i){var a=e!==void 0,p=e===null,d=e===e,S=t(e),E=i!==void 0,O=i===null,g=i===i,r=t(i);if(!O&&!r&&!S&&e>i||S&&E&&g&&!O&&!r||p&&E&&g||!a&&g||!d)return 1;if(!p&&!S&&!r&&e<i||r&&a&&d&&!p&&!S||O&&a&&d||!E&&d||!g)return-1}return 0}u.exports=o},1397:function(u,v,n){var t=n(40709);function o(e,i,a){for(var p=-1,d=e.criteria,S=i.criteria,E=d.length,O=a.length;++p<E;){var g=t(d[p],S[p]);if(g){if(p>=O)return g;var r=a[p];return g*(r=="desc"?-1:1)}}return e.index-i.index}u.exports=o},74741:function(u,v,n){var t=n(81580);function o(e,i){return function(a,p){if(a==null)return a;if(!t(a))return e(a,p);for(var d=a.length,S=i?d:-1,E=Object(a);(i?S--:++S<d)&&p(E[S],S,E)!==!1;);return a}}u.exports=o},58491:function(u,v,n){var t=n(69902),o=n(13581),e=n(66350),i=1/0,a=t&&1/e(new t([,-0]))[1]==i?function(p){return new t(p)}:o;u.exports=a},54256:function(u){function v(n,t,o){for(var e=o-1,i=n.length;++e<i;)if(n[e]===t)return e;return-1}u.exports=v},38788:function(u,v,n){var t=n(23089),o=n(34327),e=n(71286);function i(a){return o(a)?e(a):t(a)}u.exports=i},71286:function(u){var v="\\ud800-\\udfff",n="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",o="\\u20d0-\\u20ff",e=n+t+o,i="\\ufe0e\\ufe0f",a="["+v+"]",p="["+e+"]",d="\\ud83c[\\udffb-\\udfff]",S="(?:"+p+"|"+d+")",E="[^"+v+"]",O="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",r="\\u200d",s=S+"?",f="["+i+"]?",b="(?:"+r+"(?:"+[E,O,g].join("|")+")"+f+s+")*",c=f+s+b,x="(?:"+[E+p+"?",p,O,g,a].join("|")+")",l=RegExp(d+"(?="+d+")|"+x+c,"g");function h(m){for(var y=l.lastIndex=0;l.test(m);)++y;return y}u.exports=h},52654:function(u,v,n){var t=n(91131),o=n(76535),e=n(91782),i=e&&e.isRegExp,a=i?o(i):t;u.exports=a},13581:function(u){function v(){}u.exports=v},98978:function(u,v,n){var t=n(40314),o=n(50690),e=n(94569),i=n(63108),a=e(function(p,d){if(p==null)return[];var S=d.length;return S>1&&i(p,d[0],d[1])?d=[]:S>2&&i(d[0],d[1],d[2])&&(d=[d[0]]),o(p,t(d,1),[])});u.exports=a},59578:function(u,v,n){var t=n(41119);function o(e){return t(e).toLowerCase()}u.exports=o},51382:function(u,v,n){var t=n(90454),o=n(24793),e=n(34327),i=n(85973),a=n(52654),p=n(38788),d=n(51119),S=n(25225),E=n(41119),O=30,g="...",r=/\w*$/;function s(f,b){var c=O,x=g;if(i(b)){var l="separator"in b?b.separator:l;c="length"in b?S(b.length):c,x="omission"in b?t(b.omission):x}f=E(f);var h=f.length;if(e(f)){var m=d(f);h=m.length}if(c>=h)return f;var y=c-p(x);if(y<1)return x;var C=m?o(m,0,y).join(""):f.slice(0,y);if(l===void 0)return C+x;if(m&&(y+=C.length-y),a(l)){if(f.slice(y).search(l)){var A,j=C;for(l.global||(l=RegExp(l.source,E(r.exec(l))+"g")),l.lastIndex=0;A=l.exec(j);)var R=A.index;C=C.slice(0,R===void 0?y:R)}}else if(f.indexOf(t(l),y)!=y){var z=C.lastIndexOf(l);z>-1&&(C=C.slice(0,z))}return C+x}u.exports=s},91815:function(u,v,n){var t=n(84351);function o(e){return e&&e.length?t(e):[]}u.exports=o},98178:function(u,v,n){"use strict";n.d(v,{P1:function(){return E}});var t="NOT_FOUND";function o(g){var r;return{get:function(f){return r&&g(r.key,f)?r.value:t},put:function(f,b){r={key:f,value:b}},getEntries:function(){return r?[r]:[]},clear:function(){r=void 0}}}function e(g,r){var s=[];function f(l){var h=s.findIndex(function(y){return r(l,y.key)});if(h>-1){var m=s[h];return h>0&&(s.splice(h,1),s.unshift(m)),m.value}return t}function b(l,h){f(l)===t&&(s.unshift({key:l,value:h}),s.length>g&&s.pop())}function c(){return s}function x(){s=[]}return{get:f,put:b,getEntries:c,clear:x}}var i=function(r,s){return r===s};function a(g){return function(s,f){if(s===null||f===null||s.length!==f.length)return!1;for(var b=s.length,c=0;c<b;c++)if(!g(s[c],f[c]))return!1;return!0}}function p(g,r){var s=typeof r=="object"?r:{equalityCheck:r},f=s.equalityCheck,b=f===void 0?i:f,c=s.maxSize,x=c===void 0?1:c,l=s.resultEqualityCheck,h=a(b),m=x===1?o(h):e(x,h);function y(){var C=m.get(arguments);if(C===t){if(C=g.apply(null,arguments),l){var A=m.getEntries(),j=A.find(function(R){return l(R.value,C)});j&&(C=j.value)}m.put(arguments,C)}return C}return y.clearCache=function(){return m.clear()},y}function d(g){var r=Array.isArray(g[0])?g[0]:g;if(!r.every(function(f){return typeof f=="function"})){var s=r.map(function(f){return typeof f=="function"?"function "+(f.name||"unnamed")+"()":typeof f}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+s+"]")}return r}function S(g){for(var r=arguments.length,s=new Array(r>1?r-1:0),f=1;f<r;f++)s[f-1]=arguments[f];var b=function(){for(var x=arguments.length,l=new Array(x),h=0;h<x;h++)l[h]=arguments[h];var m=0,y,C={memoizeOptions:void 0},A=l.pop();if(typeof A=="object"&&(C=A,A=l.pop()),typeof A!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof A+"]");var j=C,R=j.memoizeOptions,z=R===void 0?s:R,N=Array.isArray(z)?z:[z],F=d(l),U=g.apply(void 0,[function(){return m++,A.apply(null,arguments)}].concat(N)),L=g(function(){for(var M=[],B=F.length,T=0;T<B;T++)M.push(F[T].apply(null,arguments));return y=U.apply(null,M),y});return Object.assign(L,{resultFunc:A,memoizedResultFunc:U,dependencies:F,lastResult:function(){return y},recomputations:function(){return m},resetRecomputations:function(){return m=0}}),L};return b}var E=S(p),O=function(r,s){if(s===void 0&&(s=E),typeof r!="object")throw new Error("createStructuredSelector expects first argument to be an object "+("where each property is a selector, instead received a "+typeof r));var f=Object.keys(r),b=s(f.map(function(c){return r[c]}),function(){for(var c=arguments.length,x=new Array(c),l=0;l<c;l++)x[l]=arguments[l];return x.reduce(function(h,m,y){return h[f[y]]=m,h},{})});return b}}}]);
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5563],{30493:function(B,M,t){"use strict";t.d(M,{Z:function(){return a}});var e=t(32735),m=t(5636),s=t(60216),n=t.n(s),d=t(13478),P=t(57269),E=t(39161),p=t(8888);const y=({onRegenerate:f,idToRegenerate:l,backUrl:A})=>{const{formatMessage:R}=(0,m.useIntl)(),[I,S]=(0,e.useState)(!1),{regenerateData:W,isLoadingConfirmation:F}=(0,p.rW)(A,l,f),U=async()=>{W(),S(!1)};return e.createElement(e.Fragment,null,e.createElement(E.Button,{startIcon:e.createElement(P.Refresh,null),type:"button",size:"S",variant:"tertiary",onClick:()=>S(!0),name:"regenerate"},R({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),e.createElement(d.ConfirmDialog,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:e.createElement(P.Refresh,null),isConfirmButtonLoading:F,isOpen:I,onToggleDialog:()=>S(!1),onConfirm:U,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};y.defaultProps={onRegenerate(){}},y.propTypes={onRegenerate:n().func,idToRegenerate:n().oneOfType([n().number,n().string]).isRequired,backUrl:n().string.isRequired};var h=y;const C=({title:f,token:l,setToken:A,canEditInputs:R,canRegenerate:I,isSubmitting:S,backUrl:W,regenerateUrl:F})=>{const{formatMessage:U}=(0,m.useIntl)(),Z=X=>{A({...l,accessKey:X})};return e.createElement(E.HeaderLayout,{title:l?.name||U(f),primaryAction:R?e.createElement(E.Flex,{gap:2},I&&l?.id&&e.createElement(h,{backUrl:F,onRegenerate:Z,idToRegenerate:l?.id}),e.createElement(E.Button,{disabled:S,loading:S,startIcon:e.createElement(P.Check,null),type:"submit",size:"S"},U({id:"global.save",defaultMessage:"Save"}))):I&&l?.id&&e.createElement(h,{onRegenerate:Z,idToRegenerate:l?.id,backUrl:F}),navigationAction:e.createElement(d.Link,{startIcon:e.createElement(P.ArrowLeft,null),to:W},U({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};C.propTypes={token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().oneOfType([n().number,n().string]),name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string}),canEditInputs:n().bool.isRequired,canRegenerate:n().bool.isRequired,setToken:n().func.isRequired,isSubmitting:n().bool.isRequired,backUrl:n().string.isRequired,title:n().shape({id:n().string,label:n().string}).isRequired,regenerateUrl:n().string.isRequired},C.defaultProps={token:void 0};var a=C},4321:function(B,M,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),n=t(5636),d=t(39161),P=t.n(d),E=t(37944);const p=({token:y,errors:h,values:C,onChange:a,isCreating:f})=>{const{formatMessage:l}=(0,n.useIntl)();return e.createElement(e.Fragment,null,e.createElement(d.Select,{name:"lifespan",label:l({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:C.lifespan!==null?C.lifespan:"0",error:h.lifespan?l(h.lifespan?.id?h.lifespan:{id:h.lifespan,defaultMessage:h.lifespan}):null,onChange:A=>{a({target:{name:"lifespan",value:A}})},required:!0,disabled:!f,placeholder:"Select"},e.createElement(d.Option,{value:"604800000"},l({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),e.createElement(d.Option,{value:"2592000000"},l({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),e.createElement(d.Option,{value:"7776000000"},l({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),e.createElement(d.Option,{value:"0"},l({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),e.createElement(d.Typography,{variant:"pi",textColor:"neutral600"},!f&&`${l({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,E.IX)(y?.createdAt,parseInt(C.lifespan,10))}`))};p.propTypes={errors:s().shape({lifespan:s().string}),onChange:s().func.isRequired,values:s().shape({lifespan:s().oneOfType([s().number,s().string])}).isRequired,isCreating:s().bool.isRequired,token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().string,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string})},p.defaultProps={errors:{},token:{}},M.Z=p},93682:function(B,M,t){"use strict";var e=t(32735),m=t(5636),s=t(13478),n=t.n(s),d=t(39161),P=t.n(d),E=t(57269),p=t.n(E),y=t(60216),h=t.n(y),C=t(59087),a=t.n(C);const f=({token:l,tokenType:A})=>{const{formatMessage:R}=(0,m.useIntl)(),I=(0,s.useNotification)(),{trackUsage:S}=(0,s.useTracking)(),W=(0,e.useRef)(S);return e.createElement(s.ContentBox,{endAction:l&&e.createElement("span",{style:{alignSelf:"start"}},e.createElement(C.CopyToClipboard,{onCopy:()=>{W.current("didCopyTokenKey",{tokenType:A}),I({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:l},e.createElement(d.IconButton,{label:R({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:e.createElement(E.Duplicate,null),style:{padding:0,height:"1rem"}}))),title:l||R({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:R(l?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:e.createElement(E.Key,null),iconBackground:"neutral100"})};f.defaultProps={token:null},f.propTypes={token:h().string,tokenType:h().string.isRequired},M.Z=f},42789:function(B,M,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),n=t(5636),d=t(39161),P=t.n(d);const E=({errors:p,values:y,onChange:h,canEditInputs:C})=>{const{formatMessage:a}=(0,n.useIntl)();return e.createElement(d.Textarea,{label:a({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:p.description?a(p.description?.id?p.description:{id:p.description,defaultMessage:p.description}):null,onChange:h,disabled:!C},y.description)};E.propTypes={errors:s().shape({description:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({description:s().string}).isRequired},E.defaultProps={errors:{}},M.Z=E},8377:function(B,M,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),n=t(5636),d=t(39161),P=t.n(d);const E=({errors:p,values:y,onChange:h,canEditInputs:C})=>{const{formatMessage:a}=(0,n.useIntl)();return e.createElement(d.TextInput,{name:"name",error:p.name?a(p.name?.id?p.name:{id:p.name,defaultMessage:p.name}):null,label:a({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:h,value:y.name,disabled:!C,required:!0})};E.propTypes={errors:s().shape({name:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string}).isRequired},E.defaultProps={errors:{}},M.Z=E},49638:function(B,M,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),n=t(5636),d=t(39161),P=t.n(d);const E=({name:p,errors:y,values:h,onChange:C,canEditInputs:a,options:f,label:l})=>{const{formatMessage:A}=(0,n.useIntl)();return e.createElement(d.Select,{name:p,label:A({id:l.id,defaultMessage:l.defaultMessage}),value:h&&h[p],error:y[p]?A(y[p]?.id?y[p]:{id:y[p],defaultMessage:y[p]}):null,onChange:C,placeholder:"Select",required:!0,disabled:!a},f&&f.map(({value:R,label:I})=>e.createElement(d.Option,{key:R,value:R},A(I))))};E.propTypes={name:s().string,options:s().arrayOf(s().shape({label:s().shape({id:s().string,defaultMessage:s().string}),value:s().string})),errors:s().shape({type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({type:s().string}).isRequired,label:s().shape({id:s().string,defaultMessage:s().string}).isRequired},E.defaultProps={name:"type",errors:{},options:[]},M.Z=E},68774:function(B,M,t){"use strict";t.d(M,{Z:function(){return e},f:function(){return m}});const e="api-token",m="transfer-token"},35563:function(B,M,t){"use strict";t.d(M,{Z:function(){return _e}});var e=t(32735),m=t(5636),s=t(13478),n=t(39161),d=t(83281),P=t(5141),E=t(84968),p=t(64421),y=t(37944),h=t(57269),C=t(60216),a=t.n(C);const f=({apiTokenName:o})=>{const{formatMessage:i}=(0,m.useIntl)();return(0,s.useFocusWhenNavigate)(),e.createElement(n.Main,{"aria-busy":"true"},e.createElement(s.SettingsPageTitle,{name:"API Tokens"}),e.createElement(n.HeaderLayout,{primaryAction:e.createElement(n.Button,{disabled:!0,startIcon:e.createElement(h.Check,null),type:"button",size:"L"},i({id:"global.save",defaultMessage:"Save"})),title:o||i({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),e.createElement(n.ContentLayout,null,e.createElement(s.LoadingIndicatorPage,null)))};f.defaultProps={apiTokenName:null},f.propTypes={apiTokenName:a().string};var l=f,A=t(72041);const R=(0,e.createContext)({}),I=({children:o,...i})=>e.createElement(R.Provider,{value:i},o),S=()=>(0,e.useContext)(R);I.propTypes={children:a().node.isRequired};var F=(o,i=[])=>({...o,selectedAction:null,routes:[],selectedActions:[],data:(0,y.mk)(i)}),U=t(97889),Z=t(92891);const X={data:{},selectedActions:[]};var ie=(o,i)=>(0,U.default)(o,r=>{switch(i.type){case"ON_CHANGE":{r.selectedActions.includes(i.value)?(0,Z.pull)(r.selectedActions,i.value):r.selectedActions.push(i.value);break}case"SELECT_ALL_IN_PERMISSION":{i.value.every(g=>r.selectedActions.includes(g.actionId))?i.value.forEach(g=>{(0,Z.pull)(r.selectedActions,g.actionId)}):i.value.forEach(g=>{r.selectedActions.push(g.actionId)});break}case"SELECT_ALL_ACTIONS":{r.selectedActions=[...r.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const v=r.data.allActionsIds.filter(g=>g.includes("find")||g.includes("findOne"));r.selectedActions=[...v];break}case"UPDATE_PERMISSIONS_LAYOUT":{r.data=(0,y.mk)(i.value);break}case"UPDATE_ROUTES":{r.routes={...i.value};break}case"UPDATE_PERMISSIONS":{r.selectedActions=[...i.value];break}case"SET_SELECTED_ACTION":{r.selectedAction=i.value;break}default:return r}}),Y=t(83292);const oe=Y.css`
|
|
2
|
-
background: ${o=>o.theme.colors.primary100};
|
|
3
|
-
svg {
|
|
4
|
-
opacity: 1;
|
|
5
|
-
}
|
|
6
|
-
`;var re=(0,Y.default)(n.Box)`
|
|
7
|
-
display: flex;
|
|
8
|
-
justify-content: space-between;
|
|
9
|
-
align-items: center;
|
|
10
|
-
|
|
11
|
-
svg {
|
|
12
|
-
opacity: 0;
|
|
13
|
-
path {
|
|
14
|
-
fill: ${o=>o.theme.colors.primary600};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/* Show active style both on hover and when the action is selected */
|
|
19
|
-
${o=>o.isActive&&oe}
|
|
20
|
-
&:hover {
|
|
21
|
-
${oe}
|
|
22
|
-
}
|
|
23
|
-
`;const le=Y.default.div`
|
|
24
|
-
flex: 1;
|
|
25
|
-
align-self: center;
|
|
26
|
-
border-top: 1px solid ${({theme:o})=>o.colors.neutral150};
|
|
27
|
-
`,J=({controllers:o,label:i,orderNumber:r,disabled:v,onExpanded:g,indexExpandendCollapsedContent:c})=>{const{value:{onChangeSelectAll:x,onChange:K,selectedActions:D,setSelectedAction:b,selectedAction:$}}=S(),[L,j]=(0,e.useState)(!1),{formatMessage:H}=(0,m.useIntl)(),k=()=>{j(_=>!_),g(r)};(0,e.useEffect)(()=>{c!==null&&c!==r&&L&&j(!1)},[c,r,L]);const G=_=>_===$;return e.createElement(n.Accordion,{expanded:L,onToggle:k,variant:r%2?"primary":"secondary"},e.createElement(n.AccordionToggle,{title:(0,Z.capitalize)(i)}),e.createElement(n.AccordionContent,null,o?.map(_=>{const Q=_.actions.every(T=>D.includes(T.actionId)),te=_.actions.some(T=>D.includes(T.actionId));return e.createElement(n.Box,{key:`${i}.${_?.controller}`},e.createElement(n.Flex,{justifyContent:"space-between",alignItems:"center",padding:4},e.createElement(n.Box,{paddingRight:4},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600"},_?.controller)),e.createElement(le,null),e.createElement(n.Box,{paddingLeft:4},e.createElement(n.Checkbox,{value:Q,indeterminate:!Q&&te,onValueChange:()=>{x({target:{value:[..._.actions]}})},disabled:v},H({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(n.Grid,{gap:4,padding:4},_?.actions&&_?.actions.map(T=>e.createElement(n.GridItem,{col:6,key:T.actionId},e.createElement(re,{isActive:G(T.actionId),padding:2,hasRadius:!0},e.createElement(n.Checkbox,{value:D.includes(T.actionId),name:T.actionId,onValueChange:()=>{K({target:{value:T.actionId}})},disabled:v},T.action),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>b({target:{value:T.actionId}}),style:{display:"inline-flex",alignItems:"center"}},e.createElement(h.Cog,null)))))))})))};J.defaultProps={controllers:[],orderNumber:0,disabled:!1,onExpanded:()=>null,indexExpandendCollapsedContent:null},J.propTypes={controllers:a().array,orderNumber:a().number,label:a().string.isRequired,disabled:a().bool,onExpanded:a().func,indexExpandendCollapsedContent:a().number};var ce=J;const w=({section:o,...i})=>{const[r,v]=(0,e.useState)(null),g=c=>v(c);return e.createElement(n.Box,{padding:4,background:"neutral0"},o&&o.map((c,x)=>e.createElement(ce,{key:c.apiId,label:c.label,controllers:c.controllers,orderNumber:x,indexExpandendCollapsedContent:r,onExpanded:g,name:c.apiId,...i})))};w.defaultProps={section:null},w.propTypes={section:a().arrayOf(a().object)};var de=w,ue=t(37213),pe=t.n(ue),ge=t(15738),me=t.n(ge),Ee=o=>{switch(o){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const fe=(0,Y.default)(n.Box)`
|
|
28
|
-
margin: -1px;
|
|
29
|
-
border-radius: ${({theme:o})=>o.spaces[1]} 0 0 ${({theme:o})=>o.spaces[1]};
|
|
30
|
-
`;function q({route:o}){const{formatMessage:i}=(0,m.useIntl)(),{method:r,handler:v,path:g}=o,c=g?me()(g.split("/")):[],[x="",K=""]=v?v.split("."):[],D=Ee(o.method);return e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(n.Typography,{variant:"delta",as:"h3"},i({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,x),e.createElement(n.Typography,{variant:"delta",textColor:"primary600"},".",K)),e.createElement(n.Flex,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(fe,{background:D.background,borderColor:D.border,padding:2},e.createElement(n.Typography,{fontWeight:"bold",textColor:D.text},r)),e.createElement(n.Box,{paddingLeft:2,paddingRight:2},pe()(c,b=>e.createElement(n.Typography,{key:b,textColor:b.includes(":")?"neutral600":"neutral900"},"/",b)))))}q.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},q.propTypes={route:a().shape({handler:a().string,method:a().string,path:a().string})};var ye=q,Te=()=>{const{value:{selectedAction:o,routes:i}}=S(),{formatMessage:r}=(0,m.useIntl)(),v=o?.split(".")[0];return e.createElement(n.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},o?e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},i[v]?.map(g=>g.config.auth?.scope?.includes(o)||g.handler===o?e.createElement(ye,{key:g.handler,route:g}):null)):e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(n.Typography,{variant:"delta",as:"h3"},r({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),e.createElement(n.Typography,{as:"p",textColor:"neutral600"},r({id:"Settings.apiTokens.createPage.permissions.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))};const he=({...o})=>{const{value:{data:i}}=S(),{formatMessage:r}=(0,m.useIntl)();return e.createElement(n.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(n.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(n.Typography,{variant:"delta",as:"h2"},r({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),e.createElement(n.Typography,{as:"p",textColor:"neutral600"},r({id:"Settings.apiTokens.createPage.permissions.description",defaultMessage:"Only actions bound by a route are listed below."}))),i?.permissions&&e.createElement(de,{section:i?.permissions,...o})),e.createElement(Te,null))};var Ce=(0,e.memo)(he),ve=t(4321),Ae=t(8377),Me=t(42789),Pe=t(49638);const ee=({errors:o,onChange:i,canEditInputs:r,isCreating:v,values:g,apiToken:c,onDispatch:x,setHasChangedPermissions:K})=>{const{formatMessage:D}=(0,m.useIntl)(),b=({target:{value:L}})=>{K(!1),L==="full-access"&&x({type:"SELECT_ALL_ACTIONS"}),L==="read-only"&&x({type:"ON_CHANGE_READ_ONLY"})},$=[{value:"read-only",label:{id:"Settings.tokens.types.read-only",defaultMessage:"Read-only"}},{value:"full-access",label:{id:"Settings.tokens.types.full-access",defaultMessage:"Full access"}},{value:"custom",label:{id:"Settings.tokens.types.custom",defaultMessage:"Custom"}}];return e.createElement(n.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(n.Typography,{variant:"delta",as:"h2"},D({id:"global.details",defaultMessage:"Details"})),e.createElement(n.Grid,{gap:5},e.createElement(n.GridItem,{key:"name",col:6,xs:12},e.createElement(Ae.Z,{errors:o,values:g,canEditInputs:r,onChange:i})),e.createElement(n.GridItem,{key:"description",col:6,xs:12},e.createElement(Me.Z,{errors:o,values:g,canEditInputs:r,onChange:i})),e.createElement(n.GridItem,{key:"lifespan",col:6,xs:12},e.createElement(ve.Z,{isCreating:v,errors:o,values:g,onChange:i,token:c})),e.createElement(n.GridItem,{key:"type",col:6,xs:12},e.createElement(Pe.Z,{values:g,errors:o,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:L=>{b({target:{value:L}}),i({target:{name:"type",value:L}})},options:$,canEditInputs:r})))))};ee.propTypes={errors:a().shape({name:a().string,description:a().string,lifespan:a().string,type:a().string}),onChange:a().func.isRequired,canEditInputs:a().bool.isRequired,values:a().shape({name:a().string,description:a().string,lifespan:a().oneOfType([a().number,a().string]),type:a().string}).isRequired,isCreating:a().bool.isRequired,apiToken:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().string,name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string}),onDispatch:a().func.isRequired,setHasChangedPermissions:a().func.isRequired},ee.defaultProps={errors:{},apiToken:{}};var Re=ee,Oe=t(93682),Ie=t(30493),z=t(68774);const ke="Name already taken";var _e=()=>{(0,s.useFocusWhenNavigate)();const{formatMessage:o}=(0,m.useIntl)(),{lockApp:i,unlockApp:r}=(0,s.useOverlayBlocker)(),v=(0,s.useNotification)(),g=(0,P.useHistory)(),[c,x]=(0,e.useState)(g.location.state?.apiToken.accessKey?{...g.location.state.apiToken}:null),{trackUsage:K}=(0,s.useTracking)(),D=(0,e.useRef)(K),{setCurrentStep:b}=(0,s.useGuidedTour)(),{allowedActions:{canCreate:$,canUpdate:L,canRegenerate:j}}=(0,s.useRBAC)(A.Z.settings["api-tokens"]),[H,k]=(0,e.useReducer)(ie,X,u=>F(u,{})),{params:{id:G}}=(0,P.useRouteMatch)("/settings/api-tokens/:id"),{get:_,post:Q,put:te}=(0,s.useFetchClient)(),T=G==="create";(0,E.useQuery)("content-api-permissions",async()=>{const[u,N]=await Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(async V=>{const{data:O}=await _(V);return O.data}));k({type:"UPDATE_PERMISSIONS_LAYOUT",value:u}),k({type:"UPDATE_ROUTES",value:N}),c&&(c?.type==="read-only"&&k({type:"ON_CHANGE_READ_ONLY"}),c?.type==="full-access"&&k({type:"SELECT_ALL_ACTIONS"}),c?.type==="custom"&&k({type:"UPDATE_PERMISSIONS",value:c?.permissions}))},{onError(){v({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,e.useEffect)(()=>{D.current(T?"didAddTokenFromList":"didEditTokenFromList",{tokenType:z.Z})},[T]);const{status:De}=(0,E.useQuery)(["api-token",G],async()=>{const{data:{data:u}}=await _(`/admin/api-tokens/${G}`);return x({...u}),u?.type==="read-only"&&k({type:"ON_CHANGE_READ_ONLY"}),u?.type==="full-access"&&k({type:"SELECT_ALL_ACTIONS"}),u?.type==="custom"&&k({type:"UPDATE_PERMISSIONS",value:u?.permissions}),u},{enabled:!T&&!c,onError(){v({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Se=async(u,N)=>{D.current(T?"willCreateToken":"willEditToken",{tokenType:z.Z}),i();const V=u.lifespan&&parseInt(u.lifespan,10)&&u.lifespan!=="0"?parseInt(u.lifespan,10):null;try{const{data:{data:O}}=T?await Q("/admin/api-tokens",{...u,lifespan:V,permissions:u.type==="custom"?H.selectedActions:null}):await te(`/admin/api-tokens/${G}`,{name:u.name,description:u.description,type:u.type,permissions:u.type==="custom"?H.selectedActions:null});T&&(g.replace(`/settings/api-tokens/${O.id}`,{apiToken:O}),b("apiTokens.success")),r(),x({...O}),v({type:"success",message:o(T?{id:"notification.success.apitokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.apitokenedited",defaultMessage:"API Token successfully edited"})}),D.current(T?"didCreateToken":"didEditToken",{type:c.type,tokenType:z.Z})}catch(O){const ae=(0,p.Iz)(O.response.data);N.setErrors(ae),O?.response?.data?.error?.message===ke?v({type:"warning",message:O.response.data.message||"notification.error.tokennamenotunique"}):v({type:"warning",message:O?.response?.data?.message||"notification.error"}),r()}},[xe,ne]=(0,e.useState)(!1),Le={...H,onChange:({target:{value:u}})=>{ne(!0),k({type:"ON_CHANGE",value:u})},onChangeSelectAll:({target:{value:u}})=>{ne(!0),k({type:"SELECT_ALL_IN_PERMISSION",value:u})},setSelectedAction:({target:{value:u}})=>{k({type:"SET_SELECTED_ACTION",value:u})}},se=L&&!T||$&&T;return!T&&!c&&De!=="success"?e.createElement(l,{apiTokenName:c?.name}):e.createElement(I,{value:Le},e.createElement(n.Main,null,e.createElement(s.SettingsPageTitle,{name:"API Tokens"}),e.createElement(d.Formik,{validationSchema:y.fK,validateOnChange:!1,initialValues:{name:c?.name||"",description:c?.description||"",type:c?.type,lifespan:c?.lifespan?c.lifespan.toString():c?.lifespan},enableReinitialize:!0,onSubmit:(u,N)=>Se(u,N)},({errors:u,handleChange:N,isSubmitting:V,values:O,setFieldValue:ae})=>(xe&&O?.type!=="custom"&&ae("type","custom"),e.createElement(s.Form,null,e.createElement(Ie.Z,{backUrl:"/settings/api-tokens",title:{id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"},token:c,setToken:x,canEditInputs:se,canRegenerate:j,isSubmitting:V,regenerateUrl:"/admin/api-tokens/"}),e.createElement(n.ContentLayout,null,e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:6},Boolean(c?.name)&&e.createElement(Oe.Z,{token:c?.accessKey,tokenType:z.Z}),e.createElement(Re,{errors:u,onChange:N,canEditInputs:se,isCreating:T,values:O,apiToken:c,onDispatch:k,setHasChangedPermissions:ne}),e.createElement(Ce,{disabled:!se||O?.type==="read-only"||O?.type==="full-access"}))))))))}},37944:function(B,M,t){"use strict";t.d(M,{IX:function(){return n},fK:function(){return p},mk:function(){return C}});var e=t(64213),m=t(54049),n=(a,f,l="en")=>{if(f&&typeof f=="number"){const A=f/24/60/60/1e3;return(0,e.format)((0,e.addDays)(new Date(a),A),"PPP",{locale:m[l]})}return"Unlimited"},d=t(5173),P=t(13478),p=d.Ry().shape({name:d.Z_(P.translatedErrors.string).max(100).required(P.translatedErrors.required),type:d.Z_(P.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(P.translatedErrors.required),description:d.Z_().nullable(),lifespan:d.Rx().integer().min(0).nullable().defined(P.translatedErrors.required)}),y=t(92891),C=a=>{const f={allActionsIds:[],permissions:[]};return f.permissions=Object.keys(a).map(l=>({apiId:l,label:l.split("::")[1],controllers:(0,y.flatten)(Object.keys(a[l].controllers).map(A=>({controller:A,actions:(0,y.flatten)(a[l].controllers[A].map(R=>{const I=`${l}.${A}.${R}`;return l.includes("api::")&&f.allActionsIds.push(I),{action:R,actionId:I}}))})))})),f}},15738:function(B,M,t){var e=t(4293);function m(s){var n=s==null?0:s.length;return n?e(s,1,n):[]}B.exports=m}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7259],{30493:function(_,E,e){e.d(E,{Z:function(){return m}});var t=e(32735),p=e(5636),s=e(60216),a=e.n(s),o=e(13478),i=e(57269),r=e(39161),l=e(8888);const d=({onRegenerate:u,idToRegenerate:n,backUrl:c})=>{const{formatMessage:T}=(0,p.useIntl)(),[v,O]=(0,t.useState)(!1),{regenerateData:k,isLoadingConfirmation:A}=(0,l.rW)(c,n,u),I=async()=>{k(),O(!1)};return t.createElement(t.Fragment,null,t.createElement(r.Button,{startIcon:t.createElement(i.Refresh,null),type:"button",size:"S",variant:"tertiary",onClick:()=>O(!0),name:"regenerate"},T({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(o.ConfirmDialog,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(i.Refresh,null),isConfirmButtonLoading:A,isOpen:v,onToggleDialog:()=>O(!1),onConfirm:I,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};d.defaultProps={onRegenerate(){}},d.propTypes={onRegenerate:a().func,idToRegenerate:a().oneOfType([a().number,a().string]).isRequired,backUrl:a().string.isRequired};var g=d;const f=({title:u,token:n,setToken:c,canEditInputs:T,canRegenerate:v,isSubmitting:O,backUrl:k,regenerateUrl:A})=>{const{formatMessage:I}=(0,p.useIntl)(),B=N=>{c({...n,accessKey:N})};return t.createElement(r.HeaderLayout,{title:n?.name||I(u),primaryAction:T?t.createElement(r.Flex,{gap:2},v&&n?.id&&t.createElement(g,{backUrl:A,onRegenerate:B,idToRegenerate:n?.id}),t.createElement(r.Button,{disabled:O,loading:O,startIcon:t.createElement(i.Check,null),type:"submit",size:"S"},I({id:"global.save",defaultMessage:"Save"}))):v&&n?.id&&t.createElement(g,{onRegenerate:B,idToRegenerate:n?.id,backUrl:A}),navigationAction:t.createElement(o.Link,{startIcon:t.createElement(i.ArrowLeft,null),to:k},I({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};f.propTypes={token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().oneOfType([a().number,a().string]),name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string}),canEditInputs:a().bool.isRequired,canRegenerate:a().bool.isRequired,setToken:a().func.isRequired,isSubmitting:a().bool.isRequired,backUrl:a().string.isRequired,title:a().shape({id:a().string,label:a().string}).isRequired,regenerateUrl:a().string.isRequired},f.defaultProps={token:void 0};var m=f},4321:function(_,E,e){var t=e(32735),p=e(60216),s=e.n(p),a=e(5636),o=e(39161),i=e.n(o),r=e(37944);const l=({token:d,errors:g,values:f,onChange:m,isCreating:u})=>{const{formatMessage:n}=(0,a.useIntl)();return t.createElement(t.Fragment,null,t.createElement(o.Select,{name:"lifespan",label:n({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:f.lifespan!==null?f.lifespan:"0",error:g.lifespan?n(g.lifespan?.id?g.lifespan:{id:g.lifespan,defaultMessage:g.lifespan}):null,onChange:c=>{m({target:{name:"lifespan",value:c}})},required:!0,disabled:!u,placeholder:"Select"},t.createElement(o.Option,{value:"604800000"},n({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(o.Option,{value:"2592000000"},n({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(o.Option,{value:"7776000000"},n({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(o.Option,{value:"0"},n({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Typography,{variant:"pi",textColor:"neutral600"},!u&&`${n({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,r.IX)(d?.createdAt,parseInt(f.lifespan,10))}`))};l.propTypes={errors:s().shape({lifespan:s().string}),onChange:s().func.isRequired,values:s().shape({lifespan:s().oneOfType([s().number,s().string])}).isRequired,isCreating:s().bool.isRequired,token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().string,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string})},l.defaultProps={errors:{},token:{}},E.Z=l},93682:function(_,E,e){var t=e(32735),p=e(5636),s=e(13478),a=e.n(s),o=e(39161),i=e.n(o),r=e(57269),l=e.n(r),d=e(60216),g=e.n(d),f=e(59087),m=e.n(f);const u=({token:n,tokenType:c})=>{const{formatMessage:T}=(0,p.useIntl)(),v=(0,s.useNotification)(),{trackUsage:O}=(0,s.useTracking)(),k=(0,t.useRef)(O);return t.createElement(s.ContentBox,{endAction:n&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(f.CopyToClipboard,{onCopy:()=>{k.current("didCopyTokenKey",{tokenType:c}),v({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:n},t.createElement(o.IconButton,{label:T({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(r.Duplicate,null),style:{padding:0,height:"1rem"}}))),title:n||T({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:T(n?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(r.Key,null),iconBackground:"neutral100"})};u.defaultProps={token:null},u.propTypes={token:g().string,tokenType:g().string.isRequired},E.Z=u},42789:function(_,E,e){var t=e(32735),p=e(60216),s=e.n(p),a=e(5636),o=e(39161),i=e.n(o);const r=({errors:l,values:d,onChange:g,canEditInputs:f})=>{const{formatMessage:m}=(0,a.useIntl)();return t.createElement(o.Textarea,{label:m({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:l.description?m(l.description?.id?l.description:{id:l.description,defaultMessage:l.description}):null,onChange:g,disabled:!f},d.description)};r.propTypes={errors:s().shape({description:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({description:s().string}).isRequired},r.defaultProps={errors:{}},E.Z=r},8377:function(_,E,e){var t=e(32735),p=e(60216),s=e.n(p),a=e(5636),o=e(39161),i=e.n(o);const r=({errors:l,values:d,onChange:g,canEditInputs:f})=>{const{formatMessage:m}=(0,a.useIntl)();return t.createElement(o.TextInput,{name:"name",error:l.name?m(l.name?.id?l.name:{id:l.name,defaultMessage:l.name}):null,label:m({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:g,value:d.name,disabled:!f,required:!0})};r.propTypes={errors:s().shape({name:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string}).isRequired},r.defaultProps={errors:{}},E.Z=r},49638:function(_,E,e){var t=e(32735),p=e(60216),s=e.n(p),a=e(5636),o=e(39161),i=e.n(o);const r=({name:l,errors:d,values:g,onChange:f,canEditInputs:m,options:u,label:n})=>{const{formatMessage:c}=(0,a.useIntl)();return t.createElement(o.Select,{name:l,label:c({id:n.id,defaultMessage:n.defaultMessage}),value:g&&g[l],error:d[l]?c(d[l]?.id?d[l]:{id:d[l],defaultMessage:d[l]}):null,onChange:f,placeholder:"Select",required:!0,disabled:!m},u&&u.map(({value:T,label:v})=>t.createElement(o.Option,{key:T,value:T},c(v))))};r.propTypes={name:s().string,options:s().arrayOf(s().shape({label:s().shape({id:s().string,defaultMessage:s().string}),value:s().string})),errors:s().shape({type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({type:s().string}).isRequired,label:s().shape({id:s().string,defaultMessage:s().string}).isRequired},r.defaultProps={name:"type",errors:{},options:[]},E.Z=r},68774:function(_,E,e){e.d(E,{Z:function(){return t},f:function(){return p}});const t="api-token",p="transfer-token"},37944:function(_,E,e){e.d(E,{IX:function(){return a},fK:function(){return l},mk:function(){return f}});var t=e(64213),p=e(54049),a=(m,u,n="en")=>{if(u&&typeof u=="number"){const c=u/24/60/60/1e3;return(0,t.format)((0,t.addDays)(new Date(m),c),"PPP",{locale:p[n]})}return"Unlimited"},o=e(5173),i=e(13478),l=o.Ry().shape({name:o.Z_(i.translatedErrors.string).max(100).required(i.translatedErrors.required),type:o.Z_(i.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(i.translatedErrors.required),description:o.Z_().nullable(),lifespan:o.Rx().integer().min(0).nullable().defined(i.translatedErrors.required)}),d=e(92891),f=m=>{const u={allActionsIds:[],permissions:[]};return u.permissions=Object.keys(m).map(n=>({apiId:n,label:n.split("::")[1],controllers:(0,d.flatten)(Object.keys(m[n].controllers).map(c=>({controller:c,actions:(0,d.flatten)(m[n].controllers[c].map(T=>{const v=`${n}.${c}.${T}`;return n.includes("api::")&&u.allActionsIds.push(v),{action:T,actionId:v}}))})))})),u}},37259:function(_,E,e){e.d(E,{Z:function(){return j}});var t=e(32735),p=e(5636),s=e(83281),a=e(5141),o=e(84968),i=e(13478),r=e(39161),l=e(64421),d=e(5173),f=d.Ry().shape({name:d.Z_(i.translatedErrors.string).max(100).required(i.translatedErrors.required),description:d.Z_().nullable(),lifespan:d.Rx().integer().min(0).nullable().defined(i.translatedErrors.required),permissions:d.Z_(i.translatedErrors.string).required(i.translatedErrors.required)}),m=e(57269),u=e(60216),n=e.n(u);const c=({transferTokenName:P})=>{const{formatMessage:D}=(0,p.useIntl)();return(0,i.useFocusWhenNavigate)(),t.createElement(r.Main,{"aria-busy":"true"},t.createElement(i.SettingsPageTitle,{name:"Transfer Tokens"}),t.createElement(r.HeaderLayout,{primaryAction:t.createElement(r.Button,{disabled:!0,startIcon:t.createElement(m.Check,null),type:"button",size:"L"},D({id:"global.save",defaultMessage:"Save"})),title:P||D({id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"})}),t.createElement(r.ContentLayout,null,t.createElement(i.LoadingIndicatorPage,null)))};c.defaultProps={transferTokenName:null},c.propTypes={transferTokenName:n().string};var T=c,v=e(72041),O=e(4321),k=e(8377),A=e(42789),I=e(49638);const B=({errors:P,onChange:D,canEditInputs:L,isCreating:U,values:h,transferToken:y})=>{const{formatMessage:K}=(0,p.useIntl)(),b=[{value:"push",label:{id:"Settings.transferTokens.types.push",defaultMessage:"Push"}},{value:"pull",label:{id:"Settings.transferTokens.types.pull",defaultMessage:"Pull"}},{value:"push-pull",label:{id:"Settings.transferTokens.types.push-pull",defaultMessage:"Full Access"}}];return t.createElement(r.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(r.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(r.Typography,{variant:"delta",as:"h2"},K({id:"global.details",defaultMessage:"Details"})),t.createElement(r.Grid,{gap:5},t.createElement(r.GridItem,{key:"name",col:6,xs:12},t.createElement(k.Z,{errors:P,values:h,canEditInputs:L,onChange:D})),t.createElement(r.GridItem,{key:"description",col:6,xs:12},t.createElement(A.Z,{errors:P,values:h,canEditInputs:L,onChange:D})),t.createElement(r.GridItem,{key:"lifespan",col:6,xs:12},t.createElement(O.Z,{isCreating:U,errors:P,values:h,onChange:D,token:y})),t.createElement(r.GridItem,{key:"permissions",col:6,xs:12},t.createElement(I.Z,{name:"permissions",values:h,errors:P,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:S=>{D({target:{name:"permissions",value:S}})},options:b,canEditInputs:L})))))};B.propTypes={errors:n().shape({name:n().string,description:n().string,lifespan:n().string,type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string,description:n().string,lifespan:n().oneOfType([n().number,n().string]),type:n().string}).isRequired,isCreating:n().bool.isRequired,transferToken:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string})},B.defaultProps={errors:{},transferToken:{}};var N=B,G=e(93682),H=e(30493),x=e(68774);const z="Name already taken";var j=()=>{(0,i.useFocusWhenNavigate)();const{formatMessage:P}=(0,p.useIntl)(),{lockApp:D,unlockApp:L}=(0,i.useOverlayBlocker)(),U=(0,i.useNotification)(),h=(0,a.useHistory)(),[y,K]=(0,t.useState)(h.location.state?.transferToken.accessKey?{...h.location.state.transferToken}:null),{trackUsage:b}=(0,i.useTracking)(),S=(0,t.useRef)(b),{setCurrentStep:X}=(0,i.useGuidedTour)(),{allowedActions:{canCreate:Y,canUpdate:Q,canRegenerate:J}}=(0,i.useRBAC)(v.Z.settings["transfer-tokens"]),{params:{id:Z}}=(0,a.useRouteMatch)("/settings/transfer-tokens/:id"),{get:q,post:w,put:ee}=(0,i.useFetchClient)(),R=Z==="create";(0,t.useEffect)(()=>{S.current(R?"didAddTokenFromList":"didEditTokenFromList",{tokenType:x.f})},[R]);const{status:te}=(0,o.useQuery)(["transfer-token",Z],async()=>{const{data:{data:M}}=await q(`/admin/transfer/tokens/${Z}`);return K({...M}),M},{enabled:!R&&!y,onError(){U({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),ne=async(M,W)=>{S.current(R?"willCreateToken":"willEditToken",{tokenType:x.f}),D();const V=M.lifespan&&parseInt(M.lifespan,10)&&M.lifespan!=="0"?parseInt(M.lifespan,10):null,F=M.permissions.split("-");try{const{data:{data:C}}=R?await w("/admin/transfer/tokens",{...M,lifespan:V,permissions:F}):await ee(`/admin/transfer/tokens/${Z}`,{name:M.name,description:M.description,permissions:F});L(),R&&(h.replace(`/settings/transfer-tokens/${C.id}`,{transferToken:C}),X("transferTokens.success")),K({...C}),U({type:"success",message:P(R?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})}),S.current(R?"didCreateToken":"didEditToken",{type:y?.permissions,tokenType:x.f})}catch(C){const se=(0,l.Iz)(C.response.data);W.setErrors(se),C?.response?.data?.error?.message===z?U({type:"warning",message:C.response.data.message||"notification.error.tokennamenotunique"}):U({type:"warning",message:C?.response?.data?.message||"notification.error"}),L()}},$=Q&&!R||Y&&R;return!R&&!y&&te!=="success"?t.createElement(T,{transferTokenName:y?.name}):t.createElement(r.Main,null,t.createElement(i.SettingsPageTitle,{name:"Transfer Tokens"}),t.createElement(s.Formik,{validationSchema:f,validateOnChange:!1,initialValues:{name:y?.name||"",description:y?.description||"",lifespan:y?.lifespan?y.lifespan.toString():y?.lifespan,permissions:y?.permissions.join("-")},enableReinitialize:!0,onSubmit:(M,W)=>ne(M,W)},({errors:M,handleChange:W,isSubmitting:V,values:F})=>t.createElement(i.Form,null,t.createElement(H.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:y,setToken:K,canEditInputs:$,canRegenerate:J,isSubmitting:V,regenerateUrl:"/admin/transfer/tokens/"}),t.createElement(r.ContentLayout,null,t.createElement(r.Flex,{direction:"column",alignItems:"stretch",gap:6},Boolean(y?.name)&&t.createElement(G.Z,{token:y?.accessKey,tokenType:x.f}),t.createElement(N,{errors:M,onChange:W,canEditInputs:$,isCreating:R,values:F,transferToken:y}))))))}}}]);
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5895],{61056:function(R,S,t){"use strict";t.r(S),t.d(S,{SettingsPage:function(){return oe},default:function(){return Ze}});var e=t(32735),g=t(13478),f=t(5141),n=t(39161),E=t(5636),I=t(99357),z=t(8888),x=t(64421),P=t(84968),F=t(57269),G=t(72041),N=t(60216),i=t.n(N);const v=750,O=100,B=["image/jpeg","image/png","image/svg+xml"];var U=t(97889);const D={localImage:void 0};var j=(a=D,o)=>(0,U.default)(a,s=>{switch(o.type){case"SET_LOCAL_IMAGE":{s.localImage=o.value;break}default:return s}});const H=({onChangeLogo:a,customLogo:o,goTo:s,Component:l,modalTitle:d,next:u,prev:h,currentStep:m})=>{const[{localImage:c},r]=(0,e.useReducer)(j,D),{formatMessage:y}=(0,E.useIntl)(),p=M=>{r({type:"SET_LOCAL_IMAGE",value:M})},L=()=>{s(null)};return m?e.createElement(n.ModalLayout,{labelledBy:"modal",onClose:L},e.createElement(n.ModalHeader,null,e.createElement(n.Typography,{fontWeight:"bold",as:"h2",id:"modal"},y(d))),e.createElement(l,{setLocalImage:p,goTo:s,next:u,prev:h,onClose:L,asset:c||o,onChangeLogo:a})):null};H.defaultProps={Component:void 0,currentStep:void 0,customLogo:void 0,modalTitle:void 0,next:null,prev:null},H.propTypes={Component:i().elementType,currentStep:i().string,customLogo:i().shape({name:i().string,url:i().string,width:i().number,height:i().number,ext:i().string}),goTo:i().func.isRequired,modalTitle:i().shape({id:i().string,defaultMessage:i().string}),next:i().string,onChangeLogo:i().func.isRequired,prev:i().string};var ae=H;const Y={currentStep:void 0};var se=(a=Y,o)=>(0,U.default)(a,s=>{switch(o.type){case"GO_TO":{s.currentStep=o.to;break}default:return s}}),ie=t(83292);const le={id:"Settings.application.customization.modal.upload.error-format",defaultMessage:"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg)."},k={id:"Settings.application.customization.modal.upload.error-size",defaultMessage:"The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)"},re=a=>new Promise(o=>{const s=new FileReader;s.onload=()=>{const l=new Image;l.onload=function(){o({width:l.width,height:l.height})},l.src=s.result},s.readAsDataURL(a)}),de=(a,o)=>({ext:a.name.split(".").pop(),size:a.size/1e3,name:a.name,url:URL.createObjectURL(a),rawFile:a,width:o.width,height:o.height}),q=async a=>{let o;if(!B.includes(a.type))throw o=new Error("File format"),o.displayMessage=le,o;const l=await re(a);if(!(l.width<=v&&l.height<=v))throw o=new Error("File sizing"),o.displayMessage=k,o;const u=de(a,l);if(!(u.size<=O))throw o=new Error("File sizing"),o.displayMessage=k,o;return u},ce=(0,ie.default)(n.FieldInput)`
|
|
2
|
-
opacity: 0;
|
|
3
|
-
position: absolute;
|
|
4
|
-
top: 0;
|
|
5
|
-
bottom: 0;
|
|
6
|
-
left: 0;
|
|
7
|
-
right: 0;
|
|
8
|
-
z-index: 1;
|
|
9
|
-
`,K=({setLocalImage:a,goTo:o,next:s,onClose:l})=>{const{formatMessage:d}=(0,E.useIntl)(),[u,h]=(0,e.useState)(!1),[m,c]=(0,e.useState)(void 0),r=(0,e.useRef)(null),y=()=>h(!0),p=()=>h(!1),L=A=>{A.preventDefault(),r.current.click()},M=async()=>{p();const A=r.current.files[0];if(A)try{const C=await q(A);a(C),o(s)}catch(C){if(C.displayMessage)c(d(C.displayMessage,{size:O,dimension:v})),r.current.focus();else throw C}},T=()=>u?"primary500":m?"danger600":"neutral300";return e.createElement(e.Fragment,null,e.createElement("form",null,e.createElement(n.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(n.Field,{name:"logo-upload",error:m},e.createElement("label",{htmlFor:"logo-upload"},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(n.Flex,{paddingTop:9,paddingBottom:7,hasRadius:!0,justifyContent:"center",direction:"column",background:u?"primary100":"neutral100",borderColor:T(),borderStyle:"dashed",borderWidth:"1px",position:"relative",onDragEnter:y,onDragLeave:p},e.createElement(n.Icon,{color:"primary600",width:`${60/16}rem`,height:`${60/16}rem`,as:F.PicturePlus,"aria-hidden":!0}),e.createElement(n.Box,{paddingTop:3,paddingBottom:5},e.createElement(n.Typography,{variant:"delta",as:"span"},d({id:"Settings.application.customization.modal.upload.drag-drop",defaultMessage:"Drag and Drop here or"}))),e.createElement(ce,{accept:B,cursor:"pointer",as:"input",type:"file",name:"files",tabIndex:-1,zIndex:1,onChange:M,ref:r,id:"logo-upload"}),e.createElement(n.Button,{type:"button",onClick:L},d({id:"Settings.application.customization.modal.upload.cta.browse",defaultMessage:"Browse files"})),e.createElement(n.Box,{paddingTop:6},e.createElement(n.Typography,{variant:"pi",textColor:"neutral600"},d({id:"Settings.application.customization.modal.upload.file-validation",defaultMessage:"Max dimension: {dimension}x{dimension}, Max size: {size}KB"},{size:O,dimension:v})))),e.createElement(n.FieldError,null)))))),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:l,variant:"tertiary"},d({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"}))}))};K.defaultProps={next:null},K.propTypes={goTo:i().func.isRequired,next:i().string,onClose:i().func.isRequired,setLocalImage:i().func.isRequired};var ue=K,me=t(55721),ge=async a=>{try{const o=await me.Z.get(a,{responseType:"blob",timeout:8e3});return new File([o.data],o.config.url,{type:o.headers["content-type"]})}catch(o){throw o.displayMessage={id:"Settings.application.customization.modal.upload.error-network",defaultMessage:"Network error"},o}};const Z=({goTo:a,next:o,onClose:s,setLocalImage:l})=>{const{formatMessage:d}=(0,E.useIntl)(),[u,h]=(0,e.useState)(""),[m,c]=(0,e.useState)(null),r=p=>{h(p.target.value)},y=async()=>{try{const p=await ge(u),L=await q(p);l(L),a(o)}catch(p){if(p.displayMessage)c(d(p.displayMessage,{size:O,dimension:v}));else throw p}};return e.createElement("form",{onSubmit:p=>{p.preventDefault(),y()}},e.createElement(n.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(n.TextInput,{label:d({id:"Settings.application.customization.modal.upload.from-url.input-label",defaultMessage:"URL"}),error:m,onChange:r,value:u,name:"logo-url"})),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:s,variant:"tertiary"},d({id:"app.components.Button.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(n.Button,{type:"submit"},d({id:"Settings.application.customization.modal.upload.next",defaultMessage:"Next"}))}))};Z.defaultProps={next:null},Z.propTypes={goTo:i().func.isRequired,next:i().string,onClose:i().func.isRequired,setLocalImage:i().func.isRequired};var pe=Z;const $=({setLocalImage:a,goTo:o,next:s,onClose:l})=>{const{formatMessage:d}=(0,E.useIntl)();return e.createElement(n.TabGroup,{label:d({id:"Settings.application.customization.modal.tab.label",defaultMessage:"How do you want to upload your assets?"}),variant:"simple"},e.createElement(n.Box,{paddingLeft:8,paddingRight:8},e.createElement(n.Tabs,null,e.createElement(n.Tab,null,d({id:"Settings.application.customization.modal.upload.from-computer",defaultMessage:"From computer"})),e.createElement(n.Tab,null,d({id:"Settings.application.customization.modal.upload.from-url",defaultMessage:"From url"}))),e.createElement(n.Divider,null)),e.createElement(n.TabPanels,null,e.createElement(n.TabPanel,null,e.createElement(ue,{onClose:l,setLocalImage:a,goTo:o,next:s})),e.createElement(n.TabPanel,null,e.createElement(pe,{onClose:l,setLocalImage:a,goTo:o,next:s}))))};$.defaultProps={next:null},$.propTypes={goTo:i().func.isRequired,next:i().string,onClose:i().func.isRequired,setLocalImage:i().func.isRequired};var fe=$;const _=({asset:a})=>{const{formatMessage:o}=(0,E.useIntl)();return e.createElement(n.Card,null,e.createElement(n.CardHeader,null,e.createElement(n.CardAsset,{size:"S",src:a.url})),e.createElement(n.CardBody,null,e.createElement(n.CardContent,null,e.createElement(n.CardTitle,null,a.name),e.createElement(n.CardSubtitle,null,`${a.ext.toUpperCase()} - ${a.width}\u2715${a.height}`)),e.createElement(n.CardBadge,null,o({id:"Settings.application.customization.modal.pending.card-badge",defaultMessage:"image"}))))};_.propTypes={asset:i().shape({name:i().string,url:i().string,width:i().number,height:i().number,ext:i().string}).isRequired};var he=_;const V=({onClose:a,asset:o,prev:s,next:l,goTo:d,setLocalImage:u,onChangeLogo:h})=>{const{formatMessage:m}=(0,E.useIntl)(),c=()=>{u(void 0),d(s)},r=()=>{h(o),d(l)};return e.createElement(e.Fragment,null,e.createElement(n.Box,{paddingLeft:8,paddingRight:8,paddingTop:6,paddingBottom:6},e.createElement(n.Flex,{justifyContent:"space-between",paddingBottom:6},e.createElement(n.Flex,{direction:"column",alignItems:"flex-start"},e.createElement(n.Typography,{variant:"pi",fontWeight:"bold"},m({id:"Settings.application.customization.modal.pending.title",defaultMessage:"Logo ready to upload"})),e.createElement(n.Typography,{variant:"pi",textColor:"neutral500"},m({id:"Settings.application.customization.modal.pending.subtitle",defaultMessage:"Manage the chosen logo before uploading it"}))),e.createElement(n.Button,{onClick:c,variant:"secondary"},m({id:"Settings.application.customization.modal.pending.choose-another",defaultMessage:"Choose another logo"}))),e.createElement(n.Box,{maxWidth:(0,g.pxToRem)(180)},e.createElement(he,{asset:o}))),e.createElement(n.ModalFooter,{startActions:e.createElement(n.Button,{onClick:a,variant:"tertiary"},m({id:"Settings.application.customization.modal.cancel",defaultMessage:"Cancel"})),endActions:e.createElement(n.Button,{onClick:r},m({id:"Settings.application.customization.modal.pending.upload",defaultMessage:"Upload logo"}))}))};V.defaultProps={next:null,prev:null},V.propTypes={goTo:i().func.isRequired,asset:i().shape({name:i().string,url:i().string,width:i().number,height:i().number,ext:i().string}).isRequired,next:i().string,onClose:i().func.isRequired,onChangeLogo:i().func.isRequired,prev:i().string,setLocalImage:i().func.isRequired};var Ee=V,ye={upload:{Component:fe,modalTitle:{id:"Settings.application.customization.modal.upload",defaultMessage:"Upload logo"},next:"pending",prev:null},pending:{Component:Ee,modalTitle:{id:"Settings.application.customization.modal.pending",defaultMessage:"Pending logo"},next:null,prev:"upload"}};const Q=({canUpdate:a,customLogo:o,defaultLogo:s,hint:l,label:d,onChangeLogo:u,onResetLogo:h})=>{const[{currentStep:m},c]=(0,e.useReducer)(se,Y),{Component:r,next:y,prev:p,modalTitle:L}=ye[m]||{},{formatMessage:M}=(0,E.useIntl)(),T=A=>{c({type:"GO_TO",to:A})};return e.createElement(e.Fragment,null,e.createElement(n.CarouselInput,{label:d,selectedSlide:0,hint:l,previousLabel:"",nextLabel:"",onNext:()=>{},onPrevious:()=>{},secondaryLabel:o?.name||"logo.png",actions:e.createElement(n.CarouselActions,null,e.createElement(n.IconButton,{disabled:!a,onClick:()=>T(o?"pending":"upload"),label:M({id:"Settings.application.customization.carousel.change-action",defaultMessage:"Change logo"}),icon:e.createElement(F.Plus,null)}),o&&e.createElement(n.IconButton,{disabled:!a,onClick:h,label:M({id:"Settings.application.customization.carousel.reset-action",defaultMessage:"Reset logo"}),icon:e.createElement(F.Refresh,null)}))},e.createElement(n.CarouselSlide,{label:M({id:"Settings.application.customization.carousel-slide.label",defaultMessage:"Logo slide"})},e.createElement(n.Box,{maxHeight:"40%",maxWidth:"40%",as:"img",src:o?.url||s,alt:M({id:"Settings.application.customization.carousel.title",defaultMessage:"Logo"})}))),e.createElement(ae,{Component:r,currentStep:m,onChangeLogo:u,customLogo:o,goTo:T,next:y,prev:p,modalTitle:L}))};Q.defaultProps={canUpdate:!1,customLogo:null,hint:null},Q.propTypes={canUpdate:i().bool,customLogo:i().shape({url:i().string,name:i().string}),label:i().string.isRequired,hint:i().string,defaultLogo:i().string.isRequired,onChangeLogo:i().func.isRequired,onResetLogo:i().func.isRequired};var ee=Q;const w={menuLogo:{display:null,submit:{rawFile:null,isReset:!1}},authLogo:{display:null,submit:{rawFile:null,isReset:!1}}};var Me=(a=w,o)=>(0,U.default)(a,s=>{switch(o.type){case"SET_CUSTOM_MENU_LOGO":{s.menuLogo.display=o.value,s.menuLogo.submit.rawFile=o.value.rawFile;break}case"SET_CUSTOM_AUTH_LOGO":{s.authLogo.display=o.value,s.authLogo.submit.rawFile=o.value.rawFile;break}case"RESET_CUSTOM_MENU_LOGO":{s.menuLogo.display=null,s.menuLogo.submit={rawFile:null,isReset:!0};break}case"RESET_CUSTOM_AUTH_LOGO":{s.authLogo.display=null,s.authLogo.submit={rawFile:null,isReset:!0};break}default:return s}}),Se=t(86349),Le=t.n(Se),ve=(a,o)=>Le()(a,{menuLogo:{display:o.menuLogo},authLogo:{display:o.authLogo}});const J=(0,e.forwardRef)(({canUpdate:a,projectSettingsStored:o},s)=>{const{formatMessage:l}=(0,E.useIntl)(),{trackUsage:d}=(0,g.useTracking)(),{logos:{menu:u,auth:h}}=(0,z.um)(),[{menuLogo:m,authLogo:c},r]=(0,e.useReducer)(Me,w,()=>ve(w,o)),y=T=>{r({type:"SET_CUSTOM_MENU_LOGO",value:T})},p=()=>{d("didClickResetLogo",{logo:"menu"}),r({type:"RESET_CUSTOM_MENU_LOGO"})},L=T=>{r({type:"SET_CUSTOM_AUTH_LOGO",value:T})},M=()=>{d("didClickResetLogo",{logo:"auth"}),r({type:"RESET_CUSTOM_AUTH_LOGO"})};return(0,e.useImperativeHandle)(s,()=>({getValues:()=>({menuLogo:m.submit,authLogo:c.submit})})),e.createElement(n.Box,{hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(n.Typography,{variant:"delta",as:"h3"},l({id:"Settings.application.customization",defaultMessage:"Customization"})),e.createElement(n.Typography,{variant:"pi",textColor:"neutral600"},l({id:"Settings.application.customization.size-details",defaultMessage:"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB"},{dimension:v,size:O})),e.createElement(n.Grid,{paddingTop:4,gap:4},e.createElement(n.GridItem,{col:6,s:12},e.createElement(ee,{canUpdate:a,customLogo:m.display,defaultLogo:u.default,hint:l({id:"Settings.application.customization.menu-logo.carousel-hint",defaultMessage:"Replace the logo in the main navigation"}),label:l({id:"Settings.application.customization.carousel.menu-logo.title",defaultMessage:"Menu logo"}),onChangeLogo:y,onResetLogo:p})),e.createElement(n.GridItem,{col:6,s:12},e.createElement(ee,{canUpdate:a,customLogo:c.display,defaultLogo:h.default,hint:l({id:"Settings.application.customization.auth-logo.carousel-hint",defaultMessage:"Replace the logo in the authentication pages"}),label:l({id:"Settings.application.customization.carousel.auth-logo.title",defaultMessage:"Auth logo"}),onChangeLogo:L,onResetLogo:M}))))});J.defaultProps={canUpdate:!1,projectSettingsStored:null},J.propTypes={canUpdate:i().bool,projectSettingsStored:i().shape({menuLogo:i().shape({url:i().string,name:i().string})})};var Ce=J,Te=t(48344),xe=t.n(Te),te=a=>xe()(a,(o,s,l)=>{s&&s.url?o[l]={...s,url:(0,g.prefixFileUrlWithBackendUrl)(s.url)}:o[l]=s},{});const Re=async()=>{const{get:a}=(0,g.getFetchClient)(),{data:o}=await a("/admin/project-settings");return te(o)},Ie=async a=>{const{post:o}=(0,g.getFetchClient)(),{data:s}=await o("/admin/project-settings",a,{headers:{"Content-Type":"multipart/form-data"}});return te(s)};var Fe=a=>{const o=new FormData;return Object.entries(a).forEach(([s,l])=>{l&&l.rawFile instanceof File&&o.append(s,l.rawFile),l&&l.isReset&&o.append(s,null)}),o};const Ae=(()=>window&&window.strapi&&window.strapi.isEE?t(78999).Z:t(17891).Z)();var Oe=()=>{const a=(0,e.useRef)(),o=(0,g.useNotification)(),{trackUsage:s}=(0,g.useTracking)(),{formatMessage:l}=(0,E.useIntl)(),d=(0,P.useQueryClient)();(0,g.useFocusWhenNavigate)();const u=(0,g.useAppInfos)(),{latestStrapiReleaseTag:h,shouldUpdateStrapi:m,strapiVersion:c}=u,{updateProjectSettings:r}=(0,z.um)(),{allowedActions:{canRead:y,canUpdate:p}}=(0,g.useRBAC)(G.Z.settings["project-settings"]),L=y&&p,{data:M}=(0,P.useQuery)("project-settings",Re,{enabled:y}),T=(0,P.useMutation)(C=>Ie(C),{async onSuccess(C){let{menuLogo:b,authLogo:X}=C;await d.invalidateQueries("project-settings",{refetchActive:!0}),r({menuLogo:b?.url,authLogo:X?.url})}}),A=C=>{if(C.preventDefault(),!p)return;const b=a.current.getValues(),X=Fe(b);T.mutate(X,{onSuccess(){const{menuLogo:$e,authLogo:Ve}=b;$e.rawFile&&s("didChangeLogo",{logo:"menu"}),Ve.rawFile&&s("didChangeLogo",{logo:"auth"}),o({type:"success",message:l({id:"app",defaultMessage:"Saved"})})},onError(){o({type:"warning",message:{id:"notification.error",defaultMessage:"An error occurred"}})}})};return e.createElement(n.Layout,null,e.createElement(g.SettingsPageTitle,{name:"Application"}),e.createElement(n.Main,null,e.createElement("form",{onSubmit:A},e.createElement(n.HeaderLayout,{title:l({id:"Settings.application.title",defaultMessage:"Overview"}),subtitle:l({id:"Settings.application.description",defaultMessage:"Administration panel\u2019s global information"}),primaryAction:L&&e.createElement(n.Button,{type:"submit",startIcon:e.createElement(F.Check,null)},l({id:"global.save",defaultMessage:"Save"}))}),e.createElement(n.ContentLayout,null,e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",paddingTop:6,paddingBottom:6,paddingRight:7,paddingLeft:7},e.createElement(n.Typography,{variant:"delta",as:"h3"},l({id:"global.details",defaultMessage:"Details"})),e.createElement(n.Grid,{gap:5,as:"dl"},e.createElement(n.GridItem,{col:6,s:12},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.strapiVersion",defaultMessage:"strapi version"})),e.createElement(n.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(n.Typography,null,"v",c),m&&e.createElement(n.Link,{href:`https://github.com/strapi/strapi/releases/tag/${h}`,isExternal:!0,endIcon:e.createElement(F.ExternalLink,null)},l({id:"Settings.application.link-upgrade",defaultMessage:"Upgrade your admin panel"})))),e.createElement(n.GridItem,{col:6,s:12},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.edition-title",defaultMessage:"current plan"})),e.createElement(n.Flex,{gap:3,direction:"column",alignItems:"start",as:"dd"},e.createElement(n.Typography,null,l({id:"Settings.application.ee-or-ce",defaultMessage:"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}"},{communityEdition:u.communityEdition})),e.createElement(n.Link,{href:"https://strapi.io/pricing-self-hosted",isExternal:!0,endIcon:e.createElement(F.ExternalLink,null)},l({id:"Settings.application.link-pricing",defaultMessage:"See all pricing plans"})))),e.createElement(n.GridItem,{col:6,s:12},e.createElement(n.Typography,{variant:"sigma",textColor:"neutral600",as:"dt"},l({id:"Settings.application.node-version",defaultMessage:"node version"})),e.createElement(n.Typography,{as:"dd"},u.nodeVersion)),e.createElement(Ae,null))),y&&M&&e.createElement(Ce,{canUpdate:p,ref:a,projectSettingsStored:M}))))))},ze=t(3704),Ue=t.n(ze),De=a=>Ue()(a,s=>s.links).map(s=>(0,x.ot)(s.Component,s.to,s.exact||!1)),Pe=a=>a.filter(o=>!o.links.every(s=>s.isDisplayed===!1)),Be=[{async Component(){return await Promise.all([t.e(8469),t.e(3455)]).then(t.bind(t,67249))},to:"/settings/roles",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,92034))},to:"/settings/roles/duplicate/:id",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,92034))},to:"/settings/roles/new",exact:!0},{async Component(){return await t.e(2544).then(t.bind(t,33778))},to:"/settings/roles/:id",exact:!0},{async Component(){return await t.e(5199).then(t.bind(t,54865))},to:"/settings/users",exact:!0},{async Component(){return await t.e(4263).then(t.bind(t,34669))},to:"/settings/users/:id",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,33238))},to:"/settings/webhooks/create",exact:!0},{async Component(){return await t.e(5162).then(t.bind(t,59021))},to:"/settings/webhooks/:id",exact:!0},{async Component(){return await t.e(4121).then(t.bind(t,70791))},to:"/settings/webhooks",exact:!0},{async Component(){return await t.e(8056).then(t.bind(t,37168))},to:"/settings/api-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(5563),t.e(4299)]).then(t.bind(t,3330))},to:"/settings/api-tokens/create",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(5563),t.e(92)]).then(t.bind(t,97841))},to:"/settings/api-tokens/:id",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(4816)]).then(t.bind(t,76411))},to:"/settings/transfer-tokens/create",exact:!0},{async Component(){return await t.e(9600).then(t.bind(t,38286))},to:"/settings/transfer-tokens",exact:!0},{async Component(){return await Promise.all([t.e(4049),t.e(7259),t.e(2492)]).then(t.bind(t,32392))},to:"/settings/transfer-tokens/:id",exact:!0}],be=[...(()=>window&&window.strapi&&window.strapi.isEE?t(63775).Z:t(75936).Z)(),...Be],Ge=t(61590),Ne=t(64669),We=t(77013),je=t(79318),He=t(66618);const ne=({menu:a})=>{const{formatMessage:o}=(0,E.useIntl)(),{trackUsage:s}=(0,g.useTracking)(),{pathname:l}=(0,f.useLocation)(),u=Pe(a).map(c=>({...c,title:c.intlLabel,links:c.links.map(r=>({...r,title:r.intlLabel,name:r.id}))})),h=o({id:"global.settings",defaultMessage:"Settings"}),m=(c=null)=>{s("willNavigate",{from:l,to:c})};return e.createElement(Ge.m,{ariaLabel:h},e.createElement(Ne.p,{label:h}),e.createElement(We.Z,null,u.map(c=>e.createElement(je.D,{key:c.id,label:o(c.intlLabel)},c.links.map(r=>e.createElement(He.E,{as:f.NavLink,withBullet:r.hasNotification,to:r.to,onClick:()=>m(r.to),key:r.id},o(r.intlLabel)))))))};ne.propTypes={menu:i().array.isRequired};var Ke=ne;function oe(){const{settingId:a}=(0,f.useParams)(),{settings:o}=(0,g.useStrapiApp)(),{formatMessage:s}=(0,E.useIntl)(),{isLoading:l,menu:d}=(0,z.Te)(),u=(0,e.useMemo)(()=>(0,x.WW)(be.map(({to:c,Component:r,exact:y})=>(0,x.ot)(r,c,y))),[]),h=De(o);if(l)return e.createElement(g.LoadingIndicatorPage,null);if(!a)return e.createElement(f.Redirect,{to:"/settings/application-infos"});const m=s({id:"global.settings",defaultMessage:"Settings"});return e.createElement(n.Layout,{sideNav:e.createElement(Ke,{menu:d})},e.createElement(I.Helmet,{title:m}),e.createElement(f.Switch,null,e.createElement(f.Route,{path:"/settings/application-infos",component:Oe,exact:!0}),u,h))}var Ze=(0,e.memo)(oe)},17891:function(R,S){"use strict";const t=()=>null;S.Z=t},75936:function(R,S){"use strict";const t=[];S.Z=t},78999:function(R,S,t){"use strict";var e=t(32735),g=t(5636),f=t(39161),n=t.n(f),E=t(41502),I=t(57269),z=t.n(I),x=t(13478),P=t.n(x),F=t(58414);const G="https://cloud.strapi.io/profile/billing",N="https://strapi.io/billing/request-seats",i=()=>{const{formatMessage:v}=(0,g.useIntl)(),{license:O}=(0,F.q5)(),{licenseLimitStatus:B,enforcementUserCount:U,permittedSeats:D,isHostedOnStrapiCloud:W}=O?.data??{};return D?e.createElement(f.GridItem,{col:6,s:12},e.createElement(f.Typography,{variant:"sigma",textColor:"neutral600"},v({id:"Settings.application.admin-seats",defaultMessage:"Admin seats"})),e.createElement(f.Flex,{gap:2},e.createElement(f.Flex,null,e.createElement(f.Typography,{as:"p"},v({id:"Settings.application.ee.admin-seats.count",defaultMessage:"<text>{enforcementUserCount}</text>/{permittedSeats}"},{permittedSeats:D,enforcementUserCount:U,text:j=>e.createElement(f.Typography,{fontWeight:"semiBold",textColor:U>D?"danger500":null},j)}))),B==="OVER_LIMIT"&&e.createElement(f.Tooltip,{description:v({id:"Settings.application.ee.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"})},e.createElement(f.Icon,{width:`${(0,x.pxToRem)(14)}rem`,height:`${(0,x.pxToRem)(14)}rem`,color:"danger500",as:I.ExclamationMarkCircle}))),e.createElement(E.r,{href:W?G:N,isExternal:!0,endIcon:e.createElement(I.ExternalLink,null)},v({id:"Settings.application.ee.admin-seats.add-seats",defaultMessage:"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}"},{isHostedOnStrapiCloud:W}))):null};S.Z=i},63775:function(R,S,t){"use strict";const e=[];strapi.features.isEnabled(strapi.features.SSO)&&e.push({async Component(){return await t.e(302).then(t.bind(t,26930))},to:"/settings/single-sign-on",exact:!0}),strapi.features.isEnabled(strapi.features.AUDIT_LOGS)&&e.push({async Component(){return await t.e(2812).then(t.bind(t,71765))},to:"/settings/audit-logs",exact:!0}),S.Z=e},3704:function(R,S,t){var e=t(40314),g=t(37213);function f(n,E){return e(g(n,E),1)}R.exports=f},37213:function(R,S,t){var e=t(26460),g=t(88904),f=t(52920),n=t(77236);function E(I,z){var x=n(I)?e:f;return x(I,g(z,3))}R.exports=E}}]);
|