@strapi/admin 4.4.0-beta.3 → 4.4.0-rc.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/StrapiApp.js +2 -0
- package/admin/src/components/AuthenticatedApp/index.js +2 -2
- package/admin/src/components/LanguageProvider/index.js +1 -0
- package/admin/src/components/ThemeToggleProvider/index.js +21 -10
- package/admin/src/content-manager/components/DynamicTable/index.js +2 -2
- package/admin/src/content-manager/components/InputJSON/index.js +2 -0
- package/admin/src/contexts/ApiTokenPermissions/index.js +24 -0
- package/admin/src/hooks/index.js +1 -0
- package/admin/src/hooks/useRegenerate/index.js +34 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +56 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/getMethodColor.js +41 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +72 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/CheckBoxWrapper.js +30 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +150 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ContenTypesSection/index.js +37 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +254 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +77 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormHead/index.js +85 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +40 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +68 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +215 -197
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/init.js +13 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +72 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/getDateOfExpiration.js +16 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/index.js +5 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/schema.js +2 -1
- package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +36 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DefaultButton/index.js +63 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/DeleteButton/index.js +1 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/ReadButton/index.js +19 -0
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/UpdateButton/index.js +3 -36
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +13 -11
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +3 -2
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/utils/tableHeaders.js +8 -8
- package/admin/src/pages/SettingsPage/pages/ApiTokens/ProtectedEditView/index.js +1 -1
- package/admin/src/permissions/defaultPermissions.js +2 -6
- package/admin/src/translations/en.json +17 -0
- package/admin/src/translations/zh-Hans.json +0 -1
- package/build/2077.c935ee42.chunk.js +205 -0
- package/build/4318.7d167b58.chunk.js +30 -0
- package/build/{4715.3f6cac0a.chunk.js → 4715.58cd558f.chunk.js} +32 -31
- package/build/4982.05eda880.chunk.js +324 -0
- package/build/7379.d246dd38.chunk.js +1 -0
- package/build/{7866.c793a31d.chunk.js → 7866.1201afbd.chunk.js} +2 -2
- package/build/{8773.eccaa5f3.chunk.js → 8773.c06c24c0.chunk.js} +2 -2
- package/build/{Admin-authenticatedApp.50e41ff2.chunk.js → Admin-authenticatedApp.9dec5230.chunk.js} +6 -6
- package/build/{Admin_homePage.118926e0.chunk.js → Admin_homePage.6d5e3236.chunk.js} +1 -1
- package/build/{Admin_profilePage.9d50ac44.chunk.js → Admin_profilePage.da32abbc.chunk.js} +1 -1
- package/build/{Admin_settingsPage.98a711e5.chunk.js → Admin_settingsPage.98e2a62b.chunk.js} +16 -16
- package/build/admin-app.a61d5c2e.chunk.js +112 -0
- package/build/admin-edit-roles-page.4dd6bcb9.chunk.js +1 -0
- package/build/api-tokens-create-page.93dd0689.chunk.js +1 -0
- package/build/api-tokens-edit-page.b0adac81.chunk.js +1 -0
- package/build/api-tokens-list-page.bb36535f.chunk.js +16 -0
- package/build/{content-manager.2a6f876d.chunk.js → content-manager.feb0d540.chunk.js} +2 -2
- package/build/{content-type-builder.d4610e20.chunk.js → content-type-builder.a684b2e8.chunk.js} +11 -11
- package/build/en-json.a9918c93.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/{main.fdc482f3.js → main.e4065f58.js} +1304 -1288
- package/build/{runtime~main.29105d25.js → runtime~main.4204f341.js} +2 -2
- package/build/sso-settings-page.9ceb0140.chunk.js +1 -0
- package/build/{webhook-edit-page.d2ea3351.chunk.js → webhook-edit-page.9e46fc3f.chunk.js} +1 -1
- package/build/{zh-Hans-json.77a42bc5.chunk.js → zh-Hans-json.9c99f8d4.chunk.js} +1 -1
- package/package.json +10 -9
- package/server/bootstrap.js +19 -1
- package/server/config/admin-actions.js +20 -0
- package/server/content-types/api-token-permission.js +36 -0
- package/server/content-types/api-token.js +25 -1
- package/server/content-types/index.js +1 -0
- package/server/controllers/api-token.js +24 -1
- package/server/controllers/content-api.js +15 -0
- package/server/controllers/index.js +1 -0
- package/server/routes/api-tokens.js +11 -0
- package/server/routes/content-api.js +20 -0
- package/server/routes/index.js +2 -0
- package/server/services/api-token.js +310 -29
- package/server/services/constants.js +10 -0
- package/server/services/permission/engine.js +36 -226
- package/server/services/permission.js +4 -1
- package/server/strategies/admin.js +7 -1
- package/server/strategies/api-token.js +71 -11
- package/server/validation/api-tokens.js +12 -2
- package/build/2077.61cebc93.chunk.js +0 -195
- package/build/4982.c6f88c5d.chunk.js +0 -314
- package/build/admin-app.8bc3e80f.chunk.js +0 -112
- package/build/admin-edit-roles-page.554ba3fa.chunk.js +0 -1
- package/build/api-tokens-create-page.4c262d6e.chunk.js +0 -1
- package/build/api-tokens-edit-page.10a9d368.chunk.js +0 -1
- package/build/api-tokens-list-page.442c9f3c.chunk.js +0 -15
- package/build/en-json.12bc5a14.chunk.js +0 -1
- package/build/sso-settings-page.445184e0.chunk.js +0 -1
- package/server/services/permission/engine-hooks.js +0 -82
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[302],{49851:(w,c,t)=>{t.r(c),t.d(c,{SingleSignOn:()=>E,default:()=>K});var a=t(32735),l=t(88425),P=t(88677),y=t.n(P),i=t(11856),C=t(44526),M=t(16540),b=t(90662),I=t(95602),L=t(63865),f=t(25716),d=t(78330),D=t(5636),T=t(89793),B=t.n(T),G=t(7602),m=t(73869),h=t(83983),g=t(5173);const j=g.Ry().shape({autoRegister:g.Xg().required(l.translatedErrors.required),defaultRole:g.nK().when("autoRegister",(e,s)=>e?s.required(l.translatedErrors.required):s.nullable())});var A=Object.defineProperty,F=Object.defineProperties,x=Object.getOwnPropertyDescriptors,p=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable,v=(e,s,n)=>s in e?A(e,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[s]=n,Z=(e,s)=>{for(var n in s||(s={}))H.call(s,n)&&v(e,n,s[n]);if(p)for(var n of p(s))N.call(s,n)&&v(e,n,s[n]);return e},z=(e,s)=>F(e,x(s));const S=z(Z({},h.Z.settings.sso),{readRoles:h.Z.settings.roles.read}),E=()=>{const{formatMessage:e}=(0,D.useIntl)(),{isLoading:s,allowedActions:{canUpdate:n,canReadRoles:U}}=(0,l.useRBAC)(S),[{formErrors:r,initialData:V,isLoading:W,modifiedData:u,showHeaderButtonLoader:X},_,{handleChange:R,handleSubmit:J}]=(0,m.G4)((0,G.IF)("providers/options"),j,()=>{},["autoRegister","defaultRole"]),{roles:Q}=(0,m.bF)(U);(0,l.useFocusWhenNavigate)();const Y=s||W;(0,a.useEffect)(()=>{if(r.defaultRole){const o='[name="defaultRole"]';document.querySelector(o).focus()}},[r]);const O=B()(V,u);return a.createElement(i.Layout,null,a.createElement(l.SettingsPageTitle,{name:"SSO"}),a.createElement(M.Main,{tabIndex:-1},a.createElement("form",{onSubmit:o=>{if(O){o.preventDefault();return}J(o)}},a.createElement(i.HeaderLayout,{primaryAction:a.createElement(C.Button,{"data-testid":"save-button",disabled:O,loading:X,startIcon:a.createElement(y(),null),type:"submit",size:"L"},e({id:"global.save",defaultMessage:"Save"})),title:e({id:"Settings.sso.title",defaultMessage:"Single Sign-On"}),subtitle:e({id:"Settings.sso.description",defaultMessage:"Configure the settings for the Single Sign-On feature."})}),a.createElement(i.ContentLayout,null,Y?a.createElement(l.LoadingIndicatorPage,null):a.createElement(b.Stack,{spacing:4,background:"neutral0",padding:6,shadow:"filterShadow",hasRadius:!0},a.createElement(I.Typography,{variant:"delta",as:"h2"},e({id:"global.settings",defaultMessage:"Settings"})),a.createElement(d.Grid,{gap:4},a.createElement(d.GridItem,{col:6,m:6,s:12},a.createElement(L.ToggleInput,{"aria-label":"autoRegister","data-testid":"autoRegister",disabled:!n,checked:u.autoRegister,hint:e({id:"Settings.sso.form.registration.description",defaultMessage:"Create new user on SSO login if no account exists"}),label:e({id:"Settings.sso.form.registration.label",defaultMessage:"Auto-registration"}),name:"autoRegister",offLabel:e({id:"app.components.ToggleCheckbox.off-label",defaultMessage:"Off"}),onLabel:e({id:"app.components.ToggleCheckbox.on-label",defaultMessage:"On"}),onChange:o=>{R({target:{name:"autoRegister",value:o.target.checked}})}})),a.createElement(d.GridItem,{col:6,m:6,s:12},a.createElement(f.Select,{disabled:!n,hint:e({id:"Settings.sso.form.defaultRole.description",defaultMessage:"It will attach the new authenticated user to the selected role"}),error:r.defaultRole?e({id:r.defaultRole.id,defaultMessage:r.defaultRole.id}):"",label:e({id:"Settings.sso.form.defaultRole.label",defaultMessage:"Default role"}),name:"defaultRole",onChange:o=>{R({target:{name:"defaultRole",value:o}})},placeholder:e({id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}),value:u.defaultRole},Q.map(({id:o,name:$})=>a.createElement(f.Option,{key:o,value:o.toString()},$))))))))))},K=()=>a.createElement(l.CheckPagePermissions,{permissions:S.main},a.createElement(E,null))}}]);
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { cloneDeep, has } = require('lodash/fp');
|
|
4
|
-
const { hooks } = require('@strapi/utils');
|
|
5
|
-
|
|
6
|
-
const permissionDomain = require('../../domain/permission');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Create a hook map used by the permission Engine
|
|
10
|
-
*/
|
|
11
|
-
const createEngineHooks = () => ({
|
|
12
|
-
willEvaluatePermission: hooks.createAsyncSeriesHook(),
|
|
13
|
-
willRegisterPermission: hooks.createAsyncSeriesHook(),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Create a context from a domain {@link Permission} used by the WillEvaluate hook
|
|
18
|
-
* @param {Permission} permission
|
|
19
|
-
* @return {{readonly permission: Permission, addCondition(string): this}}
|
|
20
|
-
*/
|
|
21
|
-
const createWillEvaluateContext = (permission) => ({
|
|
22
|
-
get permission() {
|
|
23
|
-
return cloneDeep(permission);
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
addCondition(condition) {
|
|
27
|
-
Object.assign(permission, permissionDomain.addCondition(condition, permission));
|
|
28
|
-
|
|
29
|
-
return this;
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Create a context from a casl Permission & some options
|
|
35
|
-
* @param caslPermission
|
|
36
|
-
* @param {object} options
|
|
37
|
-
* @param {Permission} options.permission
|
|
38
|
-
* @param {object} options.user
|
|
39
|
-
*/
|
|
40
|
-
const createWillRegisterContext = (caslPermission, { permission, user }) => ({
|
|
41
|
-
get permission() {
|
|
42
|
-
return cloneDeep(permission);
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
get user() {
|
|
46
|
-
return cloneDeep(user);
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
condition: {
|
|
50
|
-
and(rawConditionObject) {
|
|
51
|
-
if (!caslPermission.condition) {
|
|
52
|
-
Object.assign(caslPermission, { condition: { $and: [] } });
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
caslPermission.condition.$and.push(rawConditionObject);
|
|
56
|
-
|
|
57
|
-
return this;
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
or(rawConditionObject) {
|
|
61
|
-
if (!caslPermission.condition) {
|
|
62
|
-
Object.assign(caslPermission, { condition: { $and: [] } });
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const orClause = caslPermission.condition.$and.find(has('$or'));
|
|
66
|
-
|
|
67
|
-
if (orClause) {
|
|
68
|
-
orClause.$or.push(rawConditionObject);
|
|
69
|
-
} else {
|
|
70
|
-
caslPermission.condition.$and.push({ $or: [rawConditionObject] });
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return this;
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
module.exports = {
|
|
79
|
-
createEngineHooks,
|
|
80
|
-
createWillEvaluateContext,
|
|
81
|
-
createWillRegisterContext,
|
|
82
|
-
};
|