@strapi/admin 5.46.1 → 5.47.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/dist/admin/admin/src/components/Layouts/HeaderLayout.js +51 -8
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +52 -9
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/utils/getMatchingDocLink.js +167 -0
- package/dist/admin/admin/src/components/Layouts/utils/getMatchingDocLink.js.map +1 -0
- package/dist/admin/admin/src/components/Layouts/utils/getMatchingDocLink.mjs +165 -0
- package/dist/admin/admin/src/components/Layouts/utils/getMatchingDocLink.mjs.map +1 -0
- package/dist/admin/admin/src/constants.js +8 -11
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs +8 -11
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/features/Auth.js +25 -0
- package/dist/admin/admin/src/features/Auth.js.map +1 -1
- package/dist/admin/admin/src/features/Auth.mjs +26 -1
- package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.js +62 -0
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.js.map +1 -0
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs +40 -0
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/constants.js +1 -2
- package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/constants.mjs +1 -2
- package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +2 -1
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +2 -1
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +1 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +1 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/sk.json.js +446 -42
- package/dist/admin/admin/src/translations/sk.json.js.map +1 -1
- package/dist/admin/admin/src/translations/sk.json.mjs +445 -43
- package/dist/admin/admin/src/translations/sk.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js +5 -0
- package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs +6 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +24 -0
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +23 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/jwt.js +37 -0
- package/dist/admin/admin/src/utils/jwt.js.map +1 -0
- package/dist/admin/admin/src/utils/jwt.mjs +35 -0
- package/dist/admin/admin/src/utils/jwt.mjs.map +1 -0
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +2 -0
- package/dist/admin/src/components/Layouts/utils/getMatchingDocLink.d.ts +6 -0
- package/dist/admin/src/features/Tracking.d.ts +8 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useIdleSessionLogout.d.ts +33 -0
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/utils/getFetchClient.d.ts +15 -1
- package/dist/admin/src/utils/jwt.d.ts +15 -0
- package/dist/server/server/src/bootstrap.js +3 -2
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +4 -3
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/policies/index.js +0 -2
- package/dist/server/server/src/policies/index.js.map +1 -1
- package/dist/server/server/src/policies/index.mjs +0 -2
- package/dist/server/server/src/policies/index.mjs.map +1 -1
- package/dist/server/server/src/register.js +1 -1
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/routes/admin-tokens.js +0 -7
- package/dist/server/server/src/routes/admin-tokens.js.map +1 -1
- package/dist/server/server/src/routes/admin-tokens.mjs +0 -7
- package/dist/server/server/src/routes/admin-tokens.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js +8 -1
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs +6 -2
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +71 -1
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +71 -2
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/token.js +11 -0
- package/dist/server/server/src/services/token.js.map +1 -1
- package/dist/server/server/src/services/token.mjs +11 -1
- package/dist/server/server/src/services/token.mjs.map +1 -1
- package/dist/server/server/src/strategies/admin-token.js +5 -63
- package/dist/server/server/src/strategies/admin-token.js.map +1 -1
- package/dist/server/server/src/strategies/admin-token.mjs +6 -64
- package/dist/server/server/src/strategies/admin-token.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +0 -5
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts +0 -5
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin-tokens.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts +2 -0
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +15 -1
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/token.d.ts +7 -1
- package/dist/server/src/services/token.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +12 -22
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/server/server/src/policies/isAdminTokensEnabled.js +0 -16
- package/dist/server/server/src/policies/isAdminTokensEnabled.js.map +0 -1
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs +0 -14
- package/dist/server/server/src/policies/isAdminTokensEnabled.mjs.map +0 -1
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts +0 -7
- package/dist/server/src/policies/isAdminTokensEnabled.d.ts.map +0 -1
|
@@ -11,11 +11,6 @@ const { UnauthorizedError } = utils.errors;
|
|
|
11
11
|
/**
|
|
12
12
|
* Authenticate an admin token. Rejects tokens with kind !== 'admin'.
|
|
13
13
|
*/ const authenticate = async (ctx)=>{
|
|
14
|
-
if (strapi.features.future.isEnabled('adminTokens') !== true) {
|
|
15
|
-
return {
|
|
16
|
-
authenticated: false
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
14
|
const apiTokenService = index.getService('api-token-admin');
|
|
20
15
|
const token = apiTokenUtils.extractToken(ctx);
|
|
21
16
|
if (token === null) {
|
|
@@ -23,65 +18,12 @@ const { UnauthorizedError } = utils.errors;
|
|
|
23
18
|
authenticated: false
|
|
24
19
|
};
|
|
25
20
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
// Defensive kind check — only handle admin tokens
|
|
33
|
-
if (apiToken.kind !== 'admin') {
|
|
34
|
-
return {
|
|
35
|
-
authenticated: false
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
const expiryError = apiTokenUtils.checkExpiry(apiToken);
|
|
39
|
-
if (expiryError !== null) {
|
|
40
|
-
return {
|
|
41
|
-
authenticated: false,
|
|
42
|
-
error: expiryError
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
await apiTokenUtils.updateLastUsedAt(apiToken);
|
|
46
|
-
const owner = apiToken.adminUserOwner;
|
|
47
|
-
const ownerId = // eslint-disable-next-line no-nested-ternary
|
|
48
|
-
owner === null || owner === undefined ? null : typeof owner === 'object' ? owner.id : owner;
|
|
49
|
-
if (ownerId === null) {
|
|
50
|
-
return {
|
|
51
|
-
authenticated: false,
|
|
52
|
-
error: new UnauthorizedError('Token owner not found')
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
// Token populate does not load `roles`; reload the user like session auth (`admin` strategy)
|
|
56
|
-
// so `isSuperAdmin` and permission ceiling logic see the full admin user.
|
|
57
|
-
const user = await strapi.db.query('admin::user').findOne({
|
|
58
|
-
where: {
|
|
59
|
-
id: ownerId
|
|
60
|
-
},
|
|
61
|
-
populate: [
|
|
62
|
-
'roles'
|
|
63
|
-
]
|
|
64
|
-
});
|
|
65
|
-
if (user === null || user === undefined) {
|
|
66
|
-
return {
|
|
67
|
-
authenticated: false,
|
|
68
|
-
error: new UnauthorizedError('Token owner not found')
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
if (user.isActive !== true || user.blocked === true) {
|
|
72
|
-
return {
|
|
73
|
-
authenticated: false,
|
|
74
|
-
error: new UnauthorizedError('Token owner is deactivated')
|
|
75
|
-
};
|
|
21
|
+
const authResult = await apiTokenService.authenticateAdminToken(token);
|
|
22
|
+
if (authResult.authenticated === true) {
|
|
23
|
+
ctx.state.userAbility = authResult.ability;
|
|
24
|
+
ctx.state.user = authResult.user;
|
|
76
25
|
}
|
|
77
|
-
|
|
78
|
-
ctx.state.userAbility = ability;
|
|
79
|
-
ctx.state.user = user;
|
|
80
|
-
return {
|
|
81
|
-
authenticated: true,
|
|
82
|
-
credentials: apiToken,
|
|
83
|
-
ability
|
|
84
|
-
};
|
|
26
|
+
return authResult;
|
|
85
27
|
};
|
|
86
28
|
/**
|
|
87
29
|
* Re-check presence and expiry at verify time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-token.js","sources":["../../../../../server/src/strategies/admin-token.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { errors } from '@strapi/utils';\nimport { getService } from '../utils';\nimport { extractToken, checkExpiry
|
|
1
|
+
{"version":3,"file":"admin-token.js","sources":["../../../../../server/src/strategies/admin-token.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { errors } from '@strapi/utils';\nimport { getService } from '../utils';\nimport { extractToken, checkExpiry } from './api-token-utils';\nimport '@strapi/types';\n\nconst { UnauthorizedError } = errors;\n\n/**\n * Authenticate an admin token. Rejects tokens with kind !== 'admin'.\n */\nexport const authenticate = async (ctx: Context) => {\n const apiTokenService = getService('api-token-admin');\n const token = extractToken(ctx);\n\n if (token === null) {\n return { authenticated: false };\n }\n\n const authResult = await apiTokenService.authenticateAdminToken(token);\n\n if (authResult.authenticated === true) {\n ctx.state.userAbility = authResult.ability;\n ctx.state.user = authResult.user;\n }\n\n return authResult;\n};\n\n/**\n * Re-check presence and expiry at verify time.\n * Authorization is handled by isAuthenticatedAdmin + hasPermissions policies.\n *\n * @type {import('.').VerifyFunction}\n */\nexport const verify = (auth: any): void => {\n const { credentials: apiToken } = auth;\n\n if (apiToken === null || apiToken === undefined) {\n throw new UnauthorizedError('Token not found');\n }\n\n const expiryError = checkExpiry(apiToken);\n if (expiryError !== null) {\n throw expiryError;\n }\n};\n\nexport default {\n name: 'admin-token',\n authenticate,\n verify,\n};\n"],"names":["UnauthorizedError","errors","authenticate","ctx","apiTokenService","getService","token","extractToken","authenticated","authResult","authenticateAdminToken","state","userAbility","ability","user","verify","auth","credentials","apiToken","undefined","expiryError","checkExpiry","name"],"mappings":";;;;;;;;;AAMA,MAAM,EAAEA,iBAAiB,EAAE,GAAGC,YAAAA;AAE9B;;IAGO,MAAMC,YAAAA,GAAe,OAAOC,GAAAA,GAAAA;AACjC,IAAA,MAAMC,kBAAkBC,gBAAAA,CAAW,iBAAA,CAAA;AACnC,IAAA,MAAMC,QAAQC,0BAAAA,CAAaJ,GAAAA,CAAAA;AAE3B,IAAA,IAAIG,UAAU,IAAA,EAAM;QAClB,OAAO;YAAEE,aAAAA,EAAe;AAAM,SAAA;AAChC,IAAA;AAEA,IAAA,MAAMC,UAAAA,GAAa,MAAML,eAAAA,CAAgBM,sBAAsB,CAACJ,KAAAA,CAAAA;IAEhE,IAAIG,UAAAA,CAAWD,aAAa,KAAK,IAAA,EAAM;AACrCL,QAAAA,GAAAA,CAAIQ,KAAK,CAACC,WAAW,GAAGH,WAAWI,OAAO;AAC1CV,QAAAA,GAAAA,CAAIQ,KAAK,CAACG,IAAI,GAAGL,WAAWK,IAAI;AAClC,IAAA;IAEA,OAAOL,UAAAA;AACT;AAEA;;;;;IAMO,MAAMM,MAAAA,GAAS,CAACC,IAAAA,GAAAA;AACrB,IAAA,MAAM,EAAEC,WAAAA,EAAaC,QAAQ,EAAE,GAAGF,IAAAA;IAElC,IAAIE,QAAAA,KAAa,IAAA,IAAQA,QAAAA,KAAaC,SAAAA,EAAW;AAC/C,QAAA,MAAM,IAAInB,iBAAAA,CAAkB,iBAAA,CAAA;AAC9B,IAAA;AAEA,IAAA,MAAMoB,cAAcC,yBAAAA,CAAYH,QAAAA,CAAAA;AAChC,IAAA,IAAIE,gBAAgB,IAAA,EAAM;QACxB,MAAMA,WAAAA;AACR,IAAA;AACF;AAEA,6BAAe;IACbE,IAAAA,EAAM,aAAA;AACNpB,IAAAA,YAAAA;AACAa,IAAAA;AACF,CAAA;;;;;;"}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import { errors } from '@strapi/utils';
|
|
2
2
|
import { getService } from '../utils/index.mjs';
|
|
3
|
-
import { checkExpiry, extractToken
|
|
3
|
+
import { checkExpiry, extractToken } from './api-token-utils.mjs';
|
|
4
4
|
import '@strapi/types';
|
|
5
5
|
|
|
6
6
|
const { UnauthorizedError } = errors;
|
|
7
7
|
/**
|
|
8
8
|
* Authenticate an admin token. Rejects tokens with kind !== 'admin'.
|
|
9
9
|
*/ const authenticate = async (ctx)=>{
|
|
10
|
-
if (strapi.features.future.isEnabled('adminTokens') !== true) {
|
|
11
|
-
return {
|
|
12
|
-
authenticated: false
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
10
|
const apiTokenService = getService('api-token-admin');
|
|
16
11
|
const token = extractToken(ctx);
|
|
17
12
|
if (token === null) {
|
|
@@ -19,65 +14,12 @@ const { UnauthorizedError } = errors;
|
|
|
19
14
|
authenticated: false
|
|
20
15
|
};
|
|
21
16
|
}
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
// Defensive kind check — only handle admin tokens
|
|
29
|
-
if (apiToken.kind !== 'admin') {
|
|
30
|
-
return {
|
|
31
|
-
authenticated: false
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
const expiryError = checkExpiry(apiToken);
|
|
35
|
-
if (expiryError !== null) {
|
|
36
|
-
return {
|
|
37
|
-
authenticated: false,
|
|
38
|
-
error: expiryError
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
await updateLastUsedAt(apiToken);
|
|
42
|
-
const owner = apiToken.adminUserOwner;
|
|
43
|
-
const ownerId = // eslint-disable-next-line no-nested-ternary
|
|
44
|
-
owner === null || owner === undefined ? null : typeof owner === 'object' ? owner.id : owner;
|
|
45
|
-
if (ownerId === null) {
|
|
46
|
-
return {
|
|
47
|
-
authenticated: false,
|
|
48
|
-
error: new UnauthorizedError('Token owner not found')
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Token populate does not load `roles`; reload the user like session auth (`admin` strategy)
|
|
52
|
-
// so `isSuperAdmin` and permission ceiling logic see the full admin user.
|
|
53
|
-
const user = await strapi.db.query('admin::user').findOne({
|
|
54
|
-
where: {
|
|
55
|
-
id: ownerId
|
|
56
|
-
},
|
|
57
|
-
populate: [
|
|
58
|
-
'roles'
|
|
59
|
-
]
|
|
60
|
-
});
|
|
61
|
-
if (user === null || user === undefined) {
|
|
62
|
-
return {
|
|
63
|
-
authenticated: false,
|
|
64
|
-
error: new UnauthorizedError('Token owner not found')
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
if (user.isActive !== true || user.blocked === true) {
|
|
68
|
-
return {
|
|
69
|
-
authenticated: false,
|
|
70
|
-
error: new UnauthorizedError('Token owner is deactivated')
|
|
71
|
-
};
|
|
17
|
+
const authResult = await apiTokenService.authenticateAdminToken(token);
|
|
18
|
+
if (authResult.authenticated === true) {
|
|
19
|
+
ctx.state.userAbility = authResult.ability;
|
|
20
|
+
ctx.state.user = authResult.user;
|
|
72
21
|
}
|
|
73
|
-
|
|
74
|
-
ctx.state.userAbility = ability;
|
|
75
|
-
ctx.state.user = user;
|
|
76
|
-
return {
|
|
77
|
-
authenticated: true,
|
|
78
|
-
credentials: apiToken,
|
|
79
|
-
ability
|
|
80
|
-
};
|
|
22
|
+
return authResult;
|
|
81
23
|
};
|
|
82
24
|
/**
|
|
83
25
|
* Re-check presence and expiry at verify time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-token.mjs","sources":["../../../../../server/src/strategies/admin-token.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { errors } from '@strapi/utils';\nimport { getService } from '../utils';\nimport { extractToken, checkExpiry
|
|
1
|
+
{"version":3,"file":"admin-token.mjs","sources":["../../../../../server/src/strategies/admin-token.ts"],"sourcesContent":["import type { Context } from 'koa';\nimport { errors } from '@strapi/utils';\nimport { getService } from '../utils';\nimport { extractToken, checkExpiry } from './api-token-utils';\nimport '@strapi/types';\n\nconst { UnauthorizedError } = errors;\n\n/**\n * Authenticate an admin token. Rejects tokens with kind !== 'admin'.\n */\nexport const authenticate = async (ctx: Context) => {\n const apiTokenService = getService('api-token-admin');\n const token = extractToken(ctx);\n\n if (token === null) {\n return { authenticated: false };\n }\n\n const authResult = await apiTokenService.authenticateAdminToken(token);\n\n if (authResult.authenticated === true) {\n ctx.state.userAbility = authResult.ability;\n ctx.state.user = authResult.user;\n }\n\n return authResult;\n};\n\n/**\n * Re-check presence and expiry at verify time.\n * Authorization is handled by isAuthenticatedAdmin + hasPermissions policies.\n *\n * @type {import('.').VerifyFunction}\n */\nexport const verify = (auth: any): void => {\n const { credentials: apiToken } = auth;\n\n if (apiToken === null || apiToken === undefined) {\n throw new UnauthorizedError('Token not found');\n }\n\n const expiryError = checkExpiry(apiToken);\n if (expiryError !== null) {\n throw expiryError;\n }\n};\n\nexport default {\n name: 'admin-token',\n authenticate,\n verify,\n};\n"],"names":["UnauthorizedError","errors","authenticate","ctx","apiTokenService","getService","token","extractToken","authenticated","authResult","authenticateAdminToken","state","userAbility","ability","user","verify","auth","credentials","apiToken","undefined","expiryError","checkExpiry","name"],"mappings":";;;;;AAMA,MAAM,EAAEA,iBAAiB,EAAE,GAAGC,MAAAA;AAE9B;;IAGO,MAAMC,YAAAA,GAAe,OAAOC,GAAAA,GAAAA;AACjC,IAAA,MAAMC,kBAAkBC,UAAAA,CAAW,iBAAA,CAAA;AACnC,IAAA,MAAMC,QAAQC,YAAAA,CAAaJ,GAAAA,CAAAA;AAE3B,IAAA,IAAIG,UAAU,IAAA,EAAM;QAClB,OAAO;YAAEE,aAAAA,EAAe;AAAM,SAAA;AAChC,IAAA;AAEA,IAAA,MAAMC,UAAAA,GAAa,MAAML,eAAAA,CAAgBM,sBAAsB,CAACJ,KAAAA,CAAAA;IAEhE,IAAIG,UAAAA,CAAWD,aAAa,KAAK,IAAA,EAAM;AACrCL,QAAAA,GAAAA,CAAIQ,KAAK,CAACC,WAAW,GAAGH,WAAWI,OAAO;AAC1CV,QAAAA,GAAAA,CAAIQ,KAAK,CAACG,IAAI,GAAGL,WAAWK,IAAI;AAClC,IAAA;IAEA,OAAOL,UAAAA;AACT;AAEA;;;;;IAMO,MAAMM,MAAAA,GAAS,CAACC,IAAAA,GAAAA;AACrB,IAAA,MAAM,EAAEC,WAAAA,EAAaC,QAAQ,EAAE,GAAGF,IAAAA;IAElC,IAAIE,QAAAA,KAAa,IAAA,IAAQA,QAAAA,KAAaC,SAAAA,EAAW;AAC/C,QAAA,MAAM,IAAInB,iBAAAA,CAAkB,iBAAA,CAAA;AAC9B,IAAA;AAEA,IAAA,MAAMoB,cAAcC,WAAAA,CAAYH,QAAAA,CAAAA;AAChC,IAAA,IAAIE,gBAAgB,IAAA,EAAM;QACxB,MAAMA,WAAAA;AACR,IAAA;AACF;AAEA,6BAAe;IACbE,IAAAA,EAAM,aAAA;AACNpB,IAAAA,YAAAA;AACAa,IAAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../server/src/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;qCAoIR;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;AAAzD,wBAoFE"}
|
|
@@ -23,11 +23,6 @@ declare let admin: {
|
|
|
23
23
|
validator: (config: unknown) => void;
|
|
24
24
|
handler: (...args: any[]) => any;
|
|
25
25
|
};
|
|
26
|
-
isAdminTokensEnabled: {
|
|
27
|
-
name: string;
|
|
28
|
-
validator: (config: unknown) => void;
|
|
29
|
-
handler: (...args: any[]) => any;
|
|
30
|
-
};
|
|
31
26
|
isTelemetryEnabled: {
|
|
32
27
|
name: string;
|
|
33
28
|
validator: (config: unknown) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAeA,QAAA,IAAI,KAAK
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAeA,QAAA,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWR,CAAC;AAUF,eAAe,KAAK,CAAC"}
|
|
@@ -5,11 +5,6 @@ declare const _default: {
|
|
|
5
5
|
validator: (config: unknown) => void;
|
|
6
6
|
handler: (...args: any[]) => any;
|
|
7
7
|
};
|
|
8
|
-
isAdminTokensEnabled: {
|
|
9
|
-
name: string;
|
|
10
|
-
validator: (config: unknown) => void;
|
|
11
|
-
handler: (...args: any[]) => any;
|
|
12
|
-
};
|
|
13
8
|
isTelemetryEnabled: {
|
|
14
9
|
name: string;
|
|
15
10
|
validator: (config: unknown) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/policies/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/policies/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAIA,wBAA4E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-tokens.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin-tokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"admin-tokens.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin-tokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,wBA8EE"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { Context, Next } from 'koa';
|
|
1
2
|
import type { Core } from '@strapi/types';
|
|
2
3
|
declare const registerAdminPanelRoute: ({ strapi }: {
|
|
3
4
|
strapi: Core.Strapi;
|
|
4
5
|
}) => void;
|
|
6
|
+
export declare const serveStatic: (filesDir: any, koaStaticOptions?: {}) => (ctx: Context, next: Next) => Promise<void>;
|
|
5
7
|
export default registerAdminPanelRoute;
|
|
6
8
|
//# sourceMappingURL=serve-admin-panel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-admin-panel.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/serve-admin-panel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve-admin-panel.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/serve-admin-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAIzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,uBAAuB,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,SA4CnE,CAAC;AAGF,eAAO,MAAM,WAAW,aAAc,GAAG,kCAGpB,OAAO,QAAQ,IAAI,kBAiBvC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { Data } from '@strapi/types';
|
|
3
|
+
import { errors } from '@strapi/utils';
|
|
4
|
+
import type { Ability } from '@casl/ability';
|
|
3
5
|
import type { Update, ContentApiApiToken, ContentApiApiTokenBody } from '../../../shared/contracts/api-token';
|
|
4
6
|
import type { AdminApiToken, AdminTokenBody } from '../../../shared/contracts/admin-token';
|
|
5
7
|
import type { AdminUser, Permission } from '../../../shared/contracts/shared';
|
|
6
8
|
type AnyApiToken = ContentApiApiToken | AdminApiToken;
|
|
9
|
+
declare const UnauthorizedError: typeof errors.UnauthorizedError;
|
|
10
|
+
export type AdminTokenAuthenticationResult = {
|
|
11
|
+
authenticated: false;
|
|
12
|
+
error?: InstanceType<typeof UnauthorizedError>;
|
|
13
|
+
} | {
|
|
14
|
+
authenticated: true;
|
|
15
|
+
credentials: AdminApiToken;
|
|
16
|
+
user: AdminUser;
|
|
17
|
+
ability: Ability;
|
|
18
|
+
};
|
|
7
19
|
/** API/body shape: permission without ids/timestamps and without actionParameters (defaulted by domain when creating). */
|
|
8
20
|
type PermissionInput = Omit<Permission, 'id' | 'createdAt' | 'updatedAt' | 'actionParameters'>;
|
|
9
21
|
/**
|
|
@@ -87,6 +99,7 @@ declare const exists: (whereParams?: WhereParams) => Promise<boolean>;
|
|
|
87
99
|
* Return a secure sha512 hash of an accessKey
|
|
88
100
|
*/
|
|
89
101
|
declare const hash: (accessKey: string) => string;
|
|
102
|
+
declare const authenticateAdminToken: (accessToken: string) => Promise<AdminTokenAuthenticationResult>;
|
|
90
103
|
/**
|
|
91
104
|
* Create a token and its permissions
|
|
92
105
|
*/
|
|
@@ -153,6 +166,7 @@ export interface ContentApiTokenService extends SharedTokenMethods {
|
|
|
153
166
|
count(where?: object): Promise<number>;
|
|
154
167
|
}
|
|
155
168
|
export interface AdminTokenService extends SharedTokenMethods {
|
|
169
|
+
authenticateAdminToken(accessToken: string): Promise<AdminTokenAuthenticationResult>;
|
|
156
170
|
create(attributes: AdminTokenBody, callingUser: AdminUser): Promise<AdminApiToken>;
|
|
157
171
|
list(callingUser: AdminUser): Promise<AdminApiToken[]>;
|
|
158
172
|
getById(id: string | number, options?: GetByOptions): Promise<AdminApiToken | null>;
|
|
@@ -170,5 +184,5 @@ export interface AdminTokenService extends SharedTokenMethods {
|
|
|
170
184
|
declare function createTokenService(kind: 'content-api'): ContentApiTokenService;
|
|
171
185
|
declare function createTokenService(kind: 'admin'): AdminTokenService;
|
|
172
186
|
export type { GetByOptions };
|
|
173
|
-
export { createTokenService, create, count, regenerate, exists, checkSaltIsDefined, hash, list, revoke, getById, update, getByName, getBy, assignAdminPermissionsToToken, enforceAdminPermissionsCeiling, reconcileTokenPermissionsToUserCeiling, syncApiTokenPermissionsForUser, syncApiTokenPermissionsForRole, deleteAdminTokensForUser, };
|
|
187
|
+
export { createTokenService, create, count, regenerate, exists, checkSaltIsDefined, hash, list, revoke, getById, update, getByName, getBy, authenticateAdminToken, assignAdminPermissionsToToken, enforceAdminPermissionsCeiling, reconcileTokenPermissionsToUserCeiling, syncApiTokenPermissionsForUser, syncApiTokenPermissionsForRole, deleteAdminTokensForUser, };
|
|
174
188
|
//# sourceMappingURL=api-token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token.d.ts","sourceRoot":"","sources":["../../../../server/src/services/api-token.ts"],"names":[],"mappings":";AAeA,OAAO,KAAK,EAAQ,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"api-token.d.ts","sourceRoot":"","sources":["../../../../server/src/services/api-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,18 @@ declare const getTokenOptions: () => {
|
|
|
7
7
|
expiresIn?: string | number | undefined;
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* True when the project set `admin.auth.options.expiresIn`.
|
|
12
|
+
* Do not use merged options from {@link getTokenOptions}: defaults always inject `expiresIn: '30d'`,
|
|
13
|
+
* which would make every install look like a legacy config (see GitHub #25989).
|
|
14
|
+
*/
|
|
15
|
+
declare const hasUserConfiguredAuthOptionsExpiresIn: (adminAuthOptions: unknown) => boolean;
|
|
10
16
|
/**
|
|
11
17
|
* Create a random token
|
|
12
18
|
*/
|
|
13
19
|
declare const createToken: () => string;
|
|
14
20
|
declare const checkSecretIsDefined: () => void;
|
|
15
|
-
export { createToken, getTokenOptions, checkSecretIsDefined };
|
|
21
|
+
export { createToken, getTokenOptions, checkSecretIsDefined, hasUserConfiguredAuthOptionsExpiresIn, };
|
|
16
22
|
/**
|
|
17
23
|
* Convert an expiresIn value (string or number) into seconds.
|
|
18
24
|
* Supported formats:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../server/src/services/token.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,eAAe;;;;;;;;CAgBpB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW,QAAO,MAEvB,CAAC;AAEF,QAAA,MAAM,oBAAoB,YAOzB,CAAC;AAEF,OAAO,
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../server/src/services/token.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,eAAe;;;;;;;;CAgBpB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,qCAAqC,qBAAsB,OAAO,KAAG,OAK1E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,WAAW,QAAO,MAEvB,CAAC;AAEF,QAAA,MAAM,oBAAoB,YAOzB,CAAC;AAEF,OAAO,EACL,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,qCAAqC,GACtC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,cAAe,OAAO,KAAG,MAAM,GAAG,SA0ChE,CAAC"}
|
|
@@ -5,20 +5,15 @@ import '@strapi/types';
|
|
|
5
5
|
* Authenticate an admin token. Rejects tokens with kind !== 'admin'.
|
|
6
6
|
*/
|
|
7
7
|
export declare const authenticate: (ctx: Context) => Promise<{
|
|
8
|
-
authenticated:
|
|
9
|
-
error?: undefined;
|
|
10
|
-
credentials?: undefined;
|
|
11
|
-
ability?: undefined;
|
|
12
|
-
} | {
|
|
13
|
-
authenticated: boolean;
|
|
14
|
-
error: errors.UnauthorizedError<string, unknown>;
|
|
15
|
-
credentials?: undefined;
|
|
16
|
-
ability?: undefined;
|
|
8
|
+
authenticated: false;
|
|
9
|
+
error?: errors.UnauthorizedError<string, unknown> | undefined;
|
|
17
10
|
} | {
|
|
18
|
-
authenticated:
|
|
11
|
+
authenticated: true;
|
|
19
12
|
credentials: import("../../../shared/contracts/admin-token").AdminApiToken;
|
|
13
|
+
user: import("../../../shared/contracts/shared").AdminUser;
|
|
20
14
|
ability: import("@casl/ability").Ability<import("@casl/ability").AbilityTuple, any>;
|
|
21
|
-
|
|
15
|
+
} | {
|
|
16
|
+
authenticated: boolean;
|
|
22
17
|
}>;
|
|
23
18
|
/**
|
|
24
19
|
* Re-check presence and expiry at verify time.
|
|
@@ -30,20 +25,15 @@ export declare const verify: (auth: any) => void;
|
|
|
30
25
|
declare const _default: {
|
|
31
26
|
name: string;
|
|
32
27
|
authenticate: (ctx: Context) => Promise<{
|
|
33
|
-
authenticated:
|
|
34
|
-
error?: undefined;
|
|
35
|
-
credentials?: undefined;
|
|
36
|
-
ability?: undefined;
|
|
37
|
-
} | {
|
|
38
|
-
authenticated: boolean;
|
|
39
|
-
error: errors.UnauthorizedError<string, unknown>;
|
|
40
|
-
credentials?: undefined;
|
|
41
|
-
ability?: undefined;
|
|
28
|
+
authenticated: false;
|
|
29
|
+
error?: errors.UnauthorizedError<string, unknown> | undefined;
|
|
42
30
|
} | {
|
|
43
|
-
authenticated:
|
|
31
|
+
authenticated: true;
|
|
44
32
|
credentials: import("../../../shared/contracts/admin-token").AdminApiToken;
|
|
33
|
+
user: import("../../../shared/contracts/shared").AdminUser;
|
|
45
34
|
ability: import("@casl/ability").Ability<import("@casl/ability").AbilityTuple, any>;
|
|
46
|
-
|
|
35
|
+
} | {
|
|
36
|
+
authenticated: boolean;
|
|
47
37
|
}>;
|
|
48
38
|
verify: (auth: any) => void;
|
|
49
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-token.d.ts","sourceRoot":"","sources":["../../../../server/src/strategies/admin-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,OAAO,eAAe,CAAC;AAIvB;;GAEG;AACH,eAAO,MAAM,YAAY,QAAe,OAAO
|
|
1
|
+
{"version":3,"file":"admin-token.d.ts","sourceRoot":"","sources":["../../../../server/src/strategies/admin-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,OAAO,eAAe,CAAC;AAIvB;;GAEG;AACH,eAAO,MAAM,YAAY,QAAe,OAAO;;;;;;;;;;EAgB9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,SAAU,GAAG,KAAG,IAWlC,CAAC;;;;;;;;;;;;;;;;AAEF,wBAIE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/admin",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.47.0",
|
|
4
4
|
"description": "Strapi Admin",
|
|
5
5
|
"homepage": "https://strapi.io",
|
|
6
6
|
"bugs": {
|
|
@@ -91,10 +91,10 @@
|
|
|
91
91
|
"@reduxjs/toolkit": "1.9.7",
|
|
92
92
|
"@strapi/design-system": "2.2.0",
|
|
93
93
|
"@strapi/icons": "2.2.0",
|
|
94
|
-
"@strapi/permissions": "5.
|
|
95
|
-
"@strapi/types": "5.
|
|
96
|
-
"@strapi/typescript-utils": "5.
|
|
97
|
-
"@strapi/utils": "5.
|
|
94
|
+
"@strapi/permissions": "5.47.0",
|
|
95
|
+
"@strapi/types": "5.47.0",
|
|
96
|
+
"@strapi/typescript-utils": "5.47.0",
|
|
97
|
+
"@strapi/utils": "5.47.0",
|
|
98
98
|
"@testing-library/dom": "10.4.1",
|
|
99
99
|
"@testing-library/react": "16.3.0",
|
|
100
100
|
"@testing-library/user-event": "14.6.1",
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
"react-select": "5.8.0",
|
|
140
140
|
"react-window": "1.8.10",
|
|
141
141
|
"rimraf": "6.1.3",
|
|
142
|
-
"sanitize-html": "2.
|
|
142
|
+
"sanitize-html": "2.17.4",
|
|
143
143
|
"scheduler": "0.23.0",
|
|
144
144
|
"semver": "7.7.4",
|
|
145
145
|
"sift": "16.0.1",
|
|
@@ -150,8 +150,8 @@
|
|
|
150
150
|
"zod": "3.25.67"
|
|
151
151
|
},
|
|
152
152
|
"devDependencies": {
|
|
153
|
-
"@strapi/admin-test-utils": "5.
|
|
154
|
-
"@strapi/data-transfer": "5.
|
|
153
|
+
"@strapi/admin-test-utils": "5.47.0",
|
|
154
|
+
"@strapi/data-transfer": "5.47.0",
|
|
155
155
|
"@types/codemirror5": "npm:@types/codemirror@^5.60.15",
|
|
156
156
|
"@types/fs-extra": "11.0.4",
|
|
157
157
|
"@types/invariant": "2.2.36",
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var utils = require('@strapi/utils');
|
|
4
|
-
|
|
5
|
-
const { createPolicy } = utils.policy;
|
|
6
|
-
var isAdminTokensEnabled = createPolicy({
|
|
7
|
-
name: 'admin::isAdminTokensEnabled',
|
|
8
|
-
handler (ctx, _config, { strapi }) {
|
|
9
|
-
if (strapi.features.future.isEnabled('adminTokens') !== true) {
|
|
10
|
-
throw new utils.errors.NotFoundError();
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
module.exports = isAdminTokensEnabled;
|
|
16
|
-
//# sourceMappingURL=isAdminTokensEnabled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isAdminTokensEnabled.js","sources":["../../../../../server/src/policies/isAdminTokensEnabled.ts"],"sourcesContent":["import { policy, errors } from '@strapi/utils';\n\nconst { createPolicy } = policy;\n\nexport default createPolicy({\n name: 'admin::isAdminTokensEnabled',\n handler(ctx, _config, { strapi }) {\n if (strapi.features.future.isEnabled('adminTokens') !== true) {\n throw new errors.NotFoundError();\n }\n },\n});\n"],"names":["createPolicy","policy","name","handler","ctx","_config","strapi","features","future","isEnabled","errors","NotFoundError"],"mappings":";;;;AAEA,MAAM,EAAEA,YAAY,EAAE,GAAGC,YAAAA;AAEzB,2BAAeD,YAAAA,CAAa;IAC1BE,IAAAA,EAAM,6BAAA;AACNC,IAAAA,OAAAA,CAAAA,CAAQC,GAAG,EAAEC,OAAO,EAAE,EAAEC,MAAM,EAAE,EAAA;QAC9B,IAAIA,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CAACC,SAAS,CAAC,mBAAmB,IAAA,EAAM;YAC5D,MAAM,IAAIC,aAAOC,aAAa,EAAA;AAChC,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { policy, errors } from '@strapi/utils';
|
|
2
|
-
|
|
3
|
-
const { createPolicy } = policy;
|
|
4
|
-
var isAdminTokensEnabled = createPolicy({
|
|
5
|
-
name: 'admin::isAdminTokensEnabled',
|
|
6
|
-
handler (ctx, _config, { strapi }) {
|
|
7
|
-
if (strapi.features.future.isEnabled('adminTokens') !== true) {
|
|
8
|
-
throw new errors.NotFoundError();
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
export { isAdminTokensEnabled as default };
|
|
14
|
-
//# sourceMappingURL=isAdminTokensEnabled.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isAdminTokensEnabled.mjs","sources":["../../../../../server/src/policies/isAdminTokensEnabled.ts"],"sourcesContent":["import { policy, errors } from '@strapi/utils';\n\nconst { createPolicy } = policy;\n\nexport default createPolicy({\n name: 'admin::isAdminTokensEnabled',\n handler(ctx, _config, { strapi }) {\n if (strapi.features.future.isEnabled('adminTokens') !== true) {\n throw new errors.NotFoundError();\n }\n },\n});\n"],"names":["createPolicy","policy","name","handler","ctx","_config","strapi","features","future","isEnabled","errors","NotFoundError"],"mappings":";;AAEA,MAAM,EAAEA,YAAY,EAAE,GAAGC,MAAAA;AAEzB,2BAAeD,YAAAA,CAAa;IAC1BE,IAAAA,EAAM,6BAAA;AACNC,IAAAA,OAAAA,CAAAA,CAAQC,GAAG,EAAEC,OAAO,EAAE,EAAEC,MAAM,EAAE,EAAA;QAC9B,IAAIA,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CAACC,SAAS,CAAC,mBAAmB,IAAA,EAAM;YAC5D,MAAM,IAAIC,OAAOC,aAAa,EAAA;AAChC,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isAdminTokensEnabled.d.ts","sourceRoot":"","sources":["../../../../server/src/policies/isAdminTokensEnabled.ts"],"names":[],"mappings":";;;;;AAIA,wBAOG"}
|