@strapi/plugin-users-permissions 0.0.0-next.fc231041206e6f3999b094160cfa05db2892ad54 → 0.0.0-next.fc9d26d995624dc886b29f563e1de655d47e6609
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/.eslintignore +2 -1
- package/LICENSE +18 -3
- package/admin/src/components/BoundRoute/index.jsx +3 -3
- package/admin/src/components/FormModal/Input/index.jsx +33 -32
- package/admin/src/components/FormModal/index.jsx +58 -69
- package/admin/src/components/Permissions/PermissionRow/CheckboxWrapper.jsx +4 -3
- package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +13 -22
- package/admin/src/components/Permissions/index.jsx +27 -35
- package/admin/src/components/Permissions/reducer.js +1 -1
- package/admin/src/components/Policies/index.jsx +8 -6
- package/admin/src/components/UsersPermissions/index.jsx +15 -7
- package/admin/src/components/UsersPermissions/reducer.js +1 -1
- package/admin/src/index.js +17 -34
- package/admin/src/pages/AdvancedSettings/index.jsx +84 -129
- package/admin/src/pages/AdvancedSettings/utils/layout.js +20 -35
- package/admin/src/pages/AdvancedSettings/utils/schema.js +5 -2
- package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +120 -140
- package/admin/src/pages/EmailTemplates/components/EmailTable.jsx +21 -18
- package/admin/src/pages/EmailTemplates/index.jsx +36 -62
- package/admin/src/pages/EmailTemplates/utils/schema.js +18 -6
- package/admin/src/pages/Providers/index.jsx +98 -113
- package/admin/src/pages/Providers/utils/forms.js +23 -11
- package/admin/src/pages/Roles/constants.js +3 -3
- package/admin/src/pages/Roles/hooks/usePlugins.js +4 -4
- package/admin/src/pages/Roles/index.jsx +10 -19
- package/admin/src/pages/Roles/pages/CreatePage.jsx +53 -58
- package/admin/src/pages/Roles/pages/EditPage.jsx +63 -68
- package/admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx +28 -32
- package/admin/src/pages/Roles/pages/ListPage/index.jsx +79 -55
- package/admin/src/pluginId.js +2 -2
- package/admin/src/translations/en.json +1 -1
- package/admin/src/utils/prefixPluginTranslations.js +13 -0
- package/dist/admin/chunks/ar-BJwjobLp.js +45 -0
- package/dist/admin/chunks/ar-BJwjobLp.js.map +1 -0
- package/dist/admin/chunks/ar-G6bUGuUb.js +43 -0
- package/dist/admin/chunks/ar-G6bUGuUb.js.map +1 -0
- package/dist/admin/chunks/cs-Bu59JqhG.js +49 -0
- package/dist/admin/chunks/cs-Bu59JqhG.js.map +1 -0
- package/dist/admin/chunks/cs-uS_SIEo8.js +51 -0
- package/dist/admin/chunks/cs-uS_SIEo8.js.map +1 -0
- package/dist/admin/chunks/de-7MVMrqqI.js +63 -0
- package/dist/admin/chunks/de-7MVMrqqI.js.map +1 -0
- package/dist/admin/chunks/de-B81A69_5.js +61 -0
- package/dist/admin/chunks/de-B81A69_5.js.map +1 -0
- package/dist/admin/chunks/dk-BaelzvBE.js +85 -0
- package/dist/admin/chunks/dk-BaelzvBE.js.map +1 -0
- package/dist/admin/chunks/dk-DwCLGmy9.js +87 -0
- package/dist/admin/chunks/dk-DwCLGmy9.js.map +1 -0
- package/dist/admin/chunks/en-BhgCBe7M.js +85 -0
- package/dist/admin/chunks/en-BhgCBe7M.js.map +1 -0
- package/dist/admin/chunks/en-DwQjkHi_.js +87 -0
- package/dist/admin/chunks/en-DwQjkHi_.js.map +1 -0
- package/dist/admin/chunks/es-B0wXmvRj.js +85 -0
- package/dist/admin/chunks/es-B0wXmvRj.js.map +1 -0
- package/dist/admin/chunks/es-BOJOedG5.js +87 -0
- package/dist/admin/chunks/es-BOJOedG5.js.map +1 -0
- package/dist/admin/chunks/fr-BDNWCNs0.js +51 -0
- package/dist/admin/chunks/fr-BDNWCNs0.js.map +1 -0
- package/dist/admin/chunks/fr-CGYvGUXg.js +49 -0
- package/dist/admin/chunks/fr-CGYvGUXg.js.map +1 -0
- package/dist/admin/chunks/id-CNzbwFjA.js +61 -0
- package/dist/admin/chunks/id-CNzbwFjA.js.map +1 -0
- package/dist/admin/chunks/id-UqUPykHZ.js +63 -0
- package/dist/admin/chunks/id-UqUPykHZ.js.map +1 -0
- package/dist/admin/chunks/index-BPiDUOGt.js +471 -0
- package/dist/admin/chunks/index-BPiDUOGt.js.map +1 -0
- package/dist/admin/chunks/index-BtYUb_br.js +741 -0
- package/dist/admin/chunks/index-BtYUb_br.js.map +1 -0
- package/dist/admin/chunks/index-CkYplz_3.js +301 -0
- package/dist/admin/chunks/index-CkYplz_3.js.map +1 -0
- package/dist/admin/chunks/index-CxiKMwJn.js +279 -0
- package/dist/admin/chunks/index-CxiKMwJn.js.map +1 -0
- package/dist/admin/chunks/index-D01zzG9y.js +1537 -0
- package/dist/admin/chunks/index-D01zzG9y.js.map +1 -0
- package/dist/admin/chunks/index-DAclA-0k.js +217 -0
- package/dist/admin/chunks/index-DAclA-0k.js.map +1 -0
- package/dist/admin/chunks/index-DG6Abn44.js +213 -0
- package/dist/admin/chunks/index-DG6Abn44.js.map +1 -0
- package/dist/admin/chunks/index-De_N0gr1.js +448 -0
- package/dist/admin/chunks/index-De_N0gr1.js.map +1 -0
- package/dist/admin/chunks/index-DgONbTcJ.js +718 -0
- package/dist/admin/chunks/index-DgONbTcJ.js.map +1 -0
- package/dist/admin/chunks/index-xVVRcuDA.js +1516 -0
- package/dist/admin/chunks/index-xVVRcuDA.js.map +1 -0
- package/dist/admin/chunks/it-B2H2foTf.js +61 -0
- package/dist/admin/chunks/it-B2H2foTf.js.map +1 -0
- package/dist/admin/chunks/it-D5VuyoLU.js +63 -0
- package/dist/admin/chunks/it-D5VuyoLU.js.map +1 -0
- package/dist/admin/chunks/ja-C0z9d7L9.js +47 -0
- package/dist/admin/chunks/ja-C0z9d7L9.js.map +1 -0
- package/dist/admin/chunks/ja-MpqVsCgs.js +49 -0
- package/dist/admin/chunks/ja-MpqVsCgs.js.map +1 -0
- package/dist/admin/chunks/ko-Bm-grPSc.js +87 -0
- package/dist/admin/chunks/ko-Bm-grPSc.js.map +1 -0
- package/dist/admin/chunks/ko-CzUgzpeS.js +85 -0
- package/dist/admin/chunks/ko-CzUgzpeS.js.map +1 -0
- package/dist/admin/chunks/ms-CCacxjim.js +48 -0
- package/dist/admin/chunks/ms-CCacxjim.js.map +1 -0
- package/dist/admin/chunks/ms-D7eyBD5H.js +50 -0
- package/dist/admin/chunks/ms-D7eyBD5H.js.map +1 -0
- package/dist/admin/chunks/nl-BIOwAQtI.js +49 -0
- package/dist/admin/chunks/nl-BIOwAQtI.js.map +1 -0
- package/dist/admin/chunks/nl-DDC3nZW-.js +47 -0
- package/dist/admin/chunks/nl-DDC3nZW-.js.map +1 -0
- package/dist/admin/chunks/pl-D5BeNrg_.js +87 -0
- package/dist/admin/chunks/pl-D5BeNrg_.js.map +1 -0
- package/dist/admin/chunks/pl-XkS463rN.js +85 -0
- package/dist/admin/chunks/pl-XkS463rN.js.map +1 -0
- package/dist/admin/chunks/pt-BR-8cC7z8Km.js +43 -0
- package/dist/admin/chunks/pt-BR-8cC7z8Km.js.map +1 -0
- package/dist/admin/chunks/pt-BR-DxPBzQGx.js +45 -0
- package/dist/admin/chunks/pt-BR-DxPBzQGx.js.map +1 -0
- package/dist/admin/chunks/pt-DQpEvio8.js +47 -0
- package/dist/admin/chunks/pt-DQpEvio8.js.map +1 -0
- package/dist/admin/chunks/pt-kkCwzNvH.js +49 -0
- package/dist/admin/chunks/pt-kkCwzNvH.js.map +1 -0
- package/dist/admin/chunks/ru-BQ0gHmp3.js +87 -0
- package/dist/admin/chunks/ru-BQ0gHmp3.js.map +1 -0
- package/dist/admin/chunks/ru-nzL_7Mhg.js +85 -0
- package/dist/admin/chunks/ru-nzL_7Mhg.js.map +1 -0
- package/dist/admin/chunks/sk-Ddxc_tZA.js +49 -0
- package/dist/admin/chunks/sk-Ddxc_tZA.js.map +1 -0
- package/dist/admin/chunks/sk-nVwAPdYC.js +51 -0
- package/dist/admin/chunks/sk-nVwAPdYC.js.map +1 -0
- package/dist/admin/chunks/sv-BDfk2A-F.js +87 -0
- package/dist/admin/chunks/sv-BDfk2A-F.js.map +1 -0
- package/dist/admin/chunks/sv-By3RYpMG.js +85 -0
- package/dist/admin/chunks/sv-By3RYpMG.js.map +1 -0
- package/dist/admin/chunks/th-BtTtpHe2.js +61 -0
- package/dist/admin/chunks/th-BtTtpHe2.js.map +1 -0
- package/dist/admin/chunks/th-COl50vqb.js +59 -0
- package/dist/admin/chunks/th-COl50vqb.js.map +1 -0
- package/dist/admin/chunks/tr-80SJU6jg.js +84 -0
- package/dist/admin/chunks/tr-80SJU6jg.js.map +1 -0
- package/dist/admin/chunks/tr-Di-Nf7cT.js +86 -0
- package/dist/admin/chunks/tr-Di-Nf7cT.js.map +1 -0
- package/dist/admin/chunks/uk-CggQOx1l.js +50 -0
- package/dist/admin/chunks/uk-CggQOx1l.js.map +1 -0
- package/dist/admin/chunks/uk-D8JHuzch.js +48 -0
- package/dist/admin/chunks/uk-D8JHuzch.js.map +1 -0
- package/dist/admin/chunks/vi-69AF03Iv.js +49 -0
- package/dist/admin/chunks/vi-69AF03Iv.js.map +1 -0
- package/dist/admin/chunks/vi-D9cCsHsU.js +51 -0
- package/dist/admin/chunks/vi-D9cCsHsU.js.map +1 -0
- package/dist/admin/chunks/zh-BzSkqxo-.js +85 -0
- package/dist/admin/chunks/zh-BzSkqxo-.js.map +1 -0
- package/dist/admin/chunks/zh-BzWgJEzz.js +87 -0
- package/dist/admin/chunks/zh-BzWgJEzz.js.map +1 -0
- package/dist/admin/chunks/zh-Hans-CKqQbpsM.js +87 -0
- package/dist/admin/chunks/zh-Hans-CKqQbpsM.js.map +1 -0
- package/dist/admin/chunks/zh-Hans-DmDcSsp7.js +85 -0
- package/dist/admin/chunks/zh-Hans-DmDcSsp7.js.map +1 -0
- package/dist/admin/index.js +6 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -5
- package/dist/admin/index.mjs.map +1 -1
- package/dist/server/index.js +4739 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +4737 -0
- package/dist/server/index.mjs.map +1 -0
- package/package.json +31 -32
- package/rollup.config.mjs +52 -0
- package/server/bootstrap/index.js +18 -51
- package/server/bootstrap/users-permissions-actions.js +6 -0
- package/server/config.js +29 -0
- package/server/content-types/user/index.js +0 -1
- package/server/controllers/auth.js +63 -64
- package/server/controllers/content-manager-user.js +28 -30
- package/server/controllers/role.js +17 -4
- package/server/controllers/user.js +8 -9
- package/server/controllers/validation/auth.js +81 -25
- package/server/graphql/types/index.js +1 -0
- package/server/graphql/types/me.js +1 -0
- package/server/graphql/types/user-input.js +20 -0
- package/server/middlewares/rateLimit.js +1 -1
- package/server/register.js +2 -2
- package/server/services/jwt.js +3 -3
- package/server/services/permission.js +3 -7
- package/server/services/providers-registry.js +468 -275
- package/server/services/providers.js +10 -5
- package/server/services/role.js +15 -13
- package/server/services/user.js +56 -19
- package/server/services/users-permissions.js +15 -13
- package/server/utils/index.d.ts +2 -1
- package/server/utils/sanitize/sanitizers.js +7 -3
- package/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +2 -2
- package/admin/src/pages/Roles/pages/ListPage/utils/api.js +0 -30
- package/dist/_chunks/ar-MvD8Ghac.mjs +0 -44
- package/dist/_chunks/ar-MvD8Ghac.mjs.map +0 -1
- package/dist/_chunks/ar-t5qTFaAD.js +0 -44
- package/dist/_chunks/ar-t5qTFaAD.js.map +0 -1
- package/dist/_chunks/cs-BMuXwxA1.mjs +0 -50
- package/dist/_chunks/cs-BMuXwxA1.mjs.map +0 -1
- package/dist/_chunks/cs-I8N4u-Sd.js +0 -50
- package/dist/_chunks/cs-I8N4u-Sd.js.map +0 -1
- package/dist/_chunks/de-YTjtq89K.js +0 -62
- package/dist/_chunks/de-YTjtq89K.js.map +0 -1
- package/dist/_chunks/de-zs2qqc0W.mjs +0 -62
- package/dist/_chunks/de-zs2qqc0W.mjs.map +0 -1
- package/dist/_chunks/dk-HctVBMsG.mjs +0 -86
- package/dist/_chunks/dk-HctVBMsG.mjs.map +0 -1
- package/dist/_chunks/dk-TF-dWjzl.js +0 -86
- package/dist/_chunks/dk-TF-dWjzl.js.map +0 -1
- package/dist/_chunks/en-CE3wEy_c.mjs +0 -86
- package/dist/_chunks/en-CE3wEy_c.mjs.map +0 -1
- package/dist/_chunks/en-m608rMZx.js +0 -86
- package/dist/_chunks/en-m608rMZx.js.map +0 -1
- package/dist/_chunks/es-9381tih_.mjs +0 -86
- package/dist/_chunks/es-9381tih_.mjs.map +0 -1
- package/dist/_chunks/es-XBQsB8_9.js +0 -86
- package/dist/_chunks/es-XBQsB8_9.js.map +0 -1
- package/dist/_chunks/fr-6cz3U-IF.js +0 -50
- package/dist/_chunks/fr-6cz3U-IF.js.map +0 -1
- package/dist/_chunks/fr-CMSc77If.mjs +0 -50
- package/dist/_chunks/fr-CMSc77If.mjs.map +0 -1
- package/dist/_chunks/id-RJ934rq-.js +0 -62
- package/dist/_chunks/id-RJ934rq-.js.map +0 -1
- package/dist/_chunks/id-SDuyIkZa.mjs +0 -62
- package/dist/_chunks/id-SDuyIkZa.mjs.map +0 -1
- package/dist/_chunks/index-5-krOCaE.mjs +0 -250
- package/dist/_chunks/index-5-krOCaE.mjs.map +0 -1
- package/dist/_chunks/index-Aq7T7skI.js +0 -1191
- package/dist/_chunks/index-Aq7T7skI.js.map +0 -1
- package/dist/_chunks/index-LN8gSFZ3.mjs +0 -385
- package/dist/_chunks/index-LN8gSFZ3.mjs.map +0 -1
- package/dist/_chunks/index-RWAJu_-T.js +0 -407
- package/dist/_chunks/index-RWAJu_-T.js.map +0 -1
- package/dist/_chunks/index-SICvbeQf.mjs +0 -301
- package/dist/_chunks/index-SICvbeQf.mjs.map +0 -1
- package/dist/_chunks/index-YkMqn-9t.js +0 -249
- package/dist/_chunks/index-YkMqn-9t.js.map +0 -1
- package/dist/_chunks/index-_wwOOuf_.js +0 -320
- package/dist/_chunks/index-_wwOOuf_.js.map +0 -1
- package/dist/_chunks/index-dnfs8wOQ.js +0 -638
- package/dist/_chunks/index-dnfs8wOQ.js.map +0 -1
- package/dist/_chunks/index-l_QWM0NZ.mjs +0 -1159
- package/dist/_chunks/index-l_QWM0NZ.mjs.map +0 -1
- package/dist/_chunks/index-wiA9qAAp.mjs +0 -615
- package/dist/_chunks/index-wiA9qAAp.mjs.map +0 -1
- package/dist/_chunks/it-YhZOlM2X.js +0 -62
- package/dist/_chunks/it-YhZOlM2X.js.map +0 -1
- package/dist/_chunks/it-bvH7DgQo.mjs +0 -62
- package/dist/_chunks/it-bvH7DgQo.mjs.map +0 -1
- package/dist/_chunks/ja-o_-JPvQv.mjs +0 -48
- package/dist/_chunks/ja-o_-JPvQv.mjs.map +0 -1
- package/dist/_chunks/ja-xssHUXFv.js +0 -48
- package/dist/_chunks/ja-xssHUXFv.js.map +0 -1
- package/dist/_chunks/ko-C3mHUSJa.js +0 -86
- package/dist/_chunks/ko-C3mHUSJa.js.map +0 -1
- package/dist/_chunks/ko-XJbPSez_.mjs +0 -86
- package/dist/_chunks/ko-XJbPSez_.mjs.map +0 -1
- package/dist/_chunks/ms-II5Ea73J.mjs +0 -49
- package/dist/_chunks/ms-II5Ea73J.mjs.map +0 -1
- package/dist/_chunks/ms-d0hfg65Z.js +0 -49
- package/dist/_chunks/ms-d0hfg65Z.js.map +0 -1
- package/dist/_chunks/nl-TA7TfK_5.js +0 -48
- package/dist/_chunks/nl-TA7TfK_5.js.map +0 -1
- package/dist/_chunks/nl-vEy6TN0K.mjs +0 -48
- package/dist/_chunks/nl-vEy6TN0K.mjs.map +0 -1
- package/dist/_chunks/pl-0pUL9hdA.js +0 -86
- package/dist/_chunks/pl-0pUL9hdA.js.map +0 -1
- package/dist/_chunks/pl-2VowaFGt.mjs +0 -86
- package/dist/_chunks/pl-2VowaFGt.mjs.map +0 -1
- package/dist/_chunks/pt-BR-WNOhafR4.js +0 -44
- package/dist/_chunks/pt-BR-WNOhafR4.js.map +0 -1
- package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs +0 -44
- package/dist/_chunks/pt-BR-sS1Xp3Jt.mjs.map +0 -1
- package/dist/_chunks/pt-Rf9W51IO.mjs +0 -48
- package/dist/_chunks/pt-Rf9W51IO.mjs.map +0 -1
- package/dist/_chunks/pt-guNR9Gax.js +0 -48
- package/dist/_chunks/pt-guNR9Gax.js.map +0 -1
- package/dist/_chunks/ru-X3BMXDds.js +0 -86
- package/dist/_chunks/ru-X3BMXDds.js.map +0 -1
- package/dist/_chunks/ru-qKHnd5or.mjs +0 -86
- package/dist/_chunks/ru-qKHnd5or.mjs.map +0 -1
- package/dist/_chunks/sk-NWPw1oTN.js +0 -50
- package/dist/_chunks/sk-NWPw1oTN.js.map +0 -1
- package/dist/_chunks/sk-_Ryr-eTT.mjs +0 -50
- package/dist/_chunks/sk-_Ryr-eTT.mjs.map +0 -1
- package/dist/_chunks/sv-76NnbB__.js +0 -86
- package/dist/_chunks/sv-76NnbB__.js.map +0 -1
- package/dist/_chunks/sv-BqzScFXS.mjs +0 -86
- package/dist/_chunks/sv-BqzScFXS.mjs.map +0 -1
- package/dist/_chunks/th-WsknMEpq.mjs +0 -60
- package/dist/_chunks/th-WsknMEpq.mjs.map +0 -1
- package/dist/_chunks/th-cbppX21D.js +0 -60
- package/dist/_chunks/th-cbppX21D.js.map +0 -1
- package/dist/_chunks/tr-6mm_Fmz7.js +0 -85
- package/dist/_chunks/tr-6mm_Fmz7.js.map +0 -1
- package/dist/_chunks/tr-_DB1F1GW.mjs +0 -85
- package/dist/_chunks/tr-_DB1F1GW.mjs.map +0 -1
- package/dist/_chunks/uk-sI2I1ogF.js +0 -49
- package/dist/_chunks/uk-sI2I1ogF.js.map +0 -1
- package/dist/_chunks/uk-yxMSQAwI.mjs +0 -49
- package/dist/_chunks/uk-yxMSQAwI.mjs.map +0 -1
- package/dist/_chunks/vi-A3zJxaiI.js +0 -50
- package/dist/_chunks/vi-A3zJxaiI.js.map +0 -1
- package/dist/_chunks/vi-xY0zCW3d.mjs +0 -50
- package/dist/_chunks/vi-xY0zCW3d.mjs.map +0 -1
- package/dist/_chunks/zh-72SpmFXa.js +0 -86
- package/dist/_chunks/zh-72SpmFXa.js.map +0 -1
- package/dist/_chunks/zh-Hans-ArWWtyP4.js +0 -86
- package/dist/_chunks/zh-Hans-ArWWtyP4.js.map +0 -1
- package/dist/_chunks/zh-Hans-E84cu4kP.mjs +0 -86
- package/dist/_chunks/zh-Hans-E84cu4kP.mjs.map +0 -1
- package/dist/_chunks/zh-OFeldzbX.mjs +0 -86
- package/dist/_chunks/zh-OFeldzbX.mjs.map +0 -1
- package/packup.config.ts +0 -22
- package/server/bootstrap/grant-config.js +0 -140
- package/strapi-server.js +0 -3
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
const _ = require('lodash');
|
|
9
9
|
const urlJoin = require('url-join');
|
|
10
10
|
|
|
11
|
-
const { getAbsoluteServerUrl } = require('@strapi/utils');
|
|
12
11
|
const { getService } = require('../utils');
|
|
13
12
|
|
|
14
13
|
module.exports = ({ strapi }) => {
|
|
@@ -60,7 +59,7 @@ module.exports = ({ strapi }) => {
|
|
|
60
59
|
throw new Error('Email was not available.');
|
|
61
60
|
}
|
|
62
61
|
|
|
63
|
-
const users = await strapi.query('plugin::users-permissions.user').findMany({
|
|
62
|
+
const users = await strapi.db.query('plugin::users-permissions.user').findMany({
|
|
64
63
|
where: { email },
|
|
65
64
|
});
|
|
66
65
|
|
|
@@ -83,7 +82,7 @@ module.exports = ({ strapi }) => {
|
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
// Retrieve default role.
|
|
86
|
-
const defaultRole = await strapi
|
|
85
|
+
const defaultRole = await strapi.db
|
|
87
86
|
.query('plugin::users-permissions.role')
|
|
88
87
|
.findOne({ where: { type: advancedSettings.default_role } });
|
|
89
88
|
|
|
@@ -96,7 +95,7 @@ module.exports = ({ strapi }) => {
|
|
|
96
95
|
confirmed: true,
|
|
97
96
|
};
|
|
98
97
|
|
|
99
|
-
const createdUser = await strapi
|
|
98
|
+
const createdUser = await strapi.db
|
|
100
99
|
.query('plugin::users-permissions.user')
|
|
101
100
|
.create({ data: newUser });
|
|
102
101
|
|
|
@@ -105,7 +104,13 @@ module.exports = ({ strapi }) => {
|
|
|
105
104
|
|
|
106
105
|
const buildRedirectUri = (provider = '') => {
|
|
107
106
|
const apiPrefix = strapi.config.get('api.rest.prefix');
|
|
108
|
-
return urlJoin(
|
|
107
|
+
return urlJoin(
|
|
108
|
+
strapi.config.get('server.absoluteUrl'),
|
|
109
|
+
apiPrefix,
|
|
110
|
+
'connect',
|
|
111
|
+
provider,
|
|
112
|
+
'callback'
|
|
113
|
+
);
|
|
109
114
|
};
|
|
110
115
|
|
|
111
116
|
return {
|
package/server/services/role.js
CHANGED
|
@@ -10,7 +10,7 @@ module.exports = ({ strapi }) => ({
|
|
|
10
10
|
params.type = _.snakeCase(_.deburr(_.toLower(params.name)));
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
const role = await strapi
|
|
13
|
+
const role = await strapi.db
|
|
14
14
|
.query('plugin::users-permissions.role')
|
|
15
15
|
.create({ data: _.omit(params, ['users', 'permissions']) });
|
|
16
16
|
|
|
@@ -25,7 +25,7 @@ module.exports = ({ strapi }) => ({
|
|
|
25
25
|
const actionID = `${typeName}.${controllerName}.${actionName}`;
|
|
26
26
|
|
|
27
27
|
acc.push(
|
|
28
|
-
strapi
|
|
28
|
+
strapi.db
|
|
29
29
|
.query('plugin::users-permissions.permission')
|
|
30
30
|
.create({ data: { action: actionID, role: role.id } })
|
|
31
31
|
);
|
|
@@ -42,7 +42,7 @@ module.exports = ({ strapi }) => ({
|
|
|
42
42
|
},
|
|
43
43
|
|
|
44
44
|
async findOne(roleID) {
|
|
45
|
-
const role = await strapi
|
|
45
|
+
const role = await strapi.db
|
|
46
46
|
.query('plugin::users-permissions.role')
|
|
47
47
|
.findOne({ where: { id: roleID }, populate: ['permissions'] });
|
|
48
48
|
|
|
@@ -69,10 +69,12 @@ module.exports = ({ strapi }) => ({
|
|
|
69
69
|
},
|
|
70
70
|
|
|
71
71
|
async find() {
|
|
72
|
-
const roles = await strapi.
|
|
72
|
+
const roles = await strapi.db
|
|
73
|
+
.query('plugin::users-permissions.role')
|
|
74
|
+
.findMany({ sort: ['name'] });
|
|
73
75
|
|
|
74
76
|
for (const role of roles) {
|
|
75
|
-
role.nb_users = await strapi
|
|
77
|
+
role.nb_users = await strapi.db
|
|
76
78
|
.query('plugin::users-permissions.user')
|
|
77
79
|
.count({ where: { role: { id: role.id } } });
|
|
78
80
|
}
|
|
@@ -81,7 +83,7 @@ module.exports = ({ strapi }) => ({
|
|
|
81
83
|
},
|
|
82
84
|
|
|
83
85
|
async updateRole(roleID, data) {
|
|
84
|
-
const role = await strapi
|
|
86
|
+
const role = await strapi.db
|
|
85
87
|
.query('plugin::users-permissions.role')
|
|
86
88
|
.findOne({ where: { id: roleID }, populate: ['permissions'] });
|
|
87
89
|
|
|
@@ -89,7 +91,7 @@ module.exports = ({ strapi }) => ({
|
|
|
89
91
|
throw new NotFoundError('Role not found');
|
|
90
92
|
}
|
|
91
93
|
|
|
92
|
-
await strapi.query('plugin::users-permissions.role').update({
|
|
94
|
+
await strapi.db.query('plugin::users-permissions.role').update({
|
|
93
95
|
where: { id: roleID },
|
|
94
96
|
data: _.pick(data, ['name', 'description']),
|
|
95
97
|
});
|
|
@@ -129,7 +131,7 @@ module.exports = ({ strapi }) => ({
|
|
|
129
131
|
|
|
130
132
|
await Promise.all(
|
|
131
133
|
toDelete.map((permission) =>
|
|
132
|
-
strapi
|
|
134
|
+
strapi.db
|
|
133
135
|
.query('plugin::users-permissions.permission')
|
|
134
136
|
.delete({ where: { id: permission.id } })
|
|
135
137
|
)
|
|
@@ -137,13 +139,13 @@ module.exports = ({ strapi }) => ({
|
|
|
137
139
|
|
|
138
140
|
await Promise.all(
|
|
139
141
|
toCreate.map((permissionInfo) =>
|
|
140
|
-
strapi.query('plugin::users-permissions.permission').create({ data: permissionInfo })
|
|
142
|
+
strapi.db.query('plugin::users-permissions.permission').create({ data: permissionInfo })
|
|
141
143
|
)
|
|
142
144
|
);
|
|
143
145
|
},
|
|
144
146
|
|
|
145
147
|
async deleteRole(roleID, publicRoleID) {
|
|
146
|
-
const role = await strapi
|
|
148
|
+
const role = await strapi.db
|
|
147
149
|
.query('plugin::users-permissions.role')
|
|
148
150
|
.findOne({ where: { id: roleID }, populate: ['users', 'permissions'] });
|
|
149
151
|
|
|
@@ -154,7 +156,7 @@ module.exports = ({ strapi }) => ({
|
|
|
154
156
|
// Move users to guest role.
|
|
155
157
|
await Promise.all(
|
|
156
158
|
role.users.map((user) => {
|
|
157
|
-
return strapi.query('plugin::users-permissions.user').update({
|
|
159
|
+
return strapi.db.query('plugin::users-permissions.user').update({
|
|
158
160
|
where: { id: user.id },
|
|
159
161
|
data: { role: publicRoleID },
|
|
160
162
|
});
|
|
@@ -165,13 +167,13 @@ module.exports = ({ strapi }) => ({
|
|
|
165
167
|
// TODO: use delete many
|
|
166
168
|
await Promise.all(
|
|
167
169
|
role.permissions.map((permission) => {
|
|
168
|
-
return strapi.query('plugin::users-permissions.permission').delete({
|
|
170
|
+
return strapi.db.query('plugin::users-permissions.permission').delete({
|
|
169
171
|
where: { id: permission.id },
|
|
170
172
|
});
|
|
171
173
|
})
|
|
172
174
|
);
|
|
173
175
|
|
|
174
176
|
// Delete the role.
|
|
175
|
-
await strapi.query('plugin::users-permissions.role').delete({ where: { id: roleID } });
|
|
177
|
+
await strapi.db.query('plugin::users-permissions.role').delete({ where: { id: roleID } });
|
|
176
178
|
},
|
|
177
179
|
});
|
package/server/services/user.js
CHANGED
|
@@ -10,9 +10,12 @@ const crypto = require('crypto');
|
|
|
10
10
|
const bcrypt = require('bcryptjs');
|
|
11
11
|
const urlJoin = require('url-join');
|
|
12
12
|
|
|
13
|
-
const {
|
|
13
|
+
const { sanitize } = require('@strapi/utils');
|
|
14
|
+
const { toNumber, getOr } = require('lodash/fp');
|
|
14
15
|
const { getService } = require('../utils');
|
|
15
16
|
|
|
17
|
+
const USER_MODEL_UID = 'plugin::users-permissions.user';
|
|
18
|
+
|
|
16
19
|
module.exports = ({ strapi }) => ({
|
|
17
20
|
/**
|
|
18
21
|
* Promise to count users
|
|
@@ -21,22 +24,38 @@ module.exports = ({ strapi }) => ({
|
|
|
21
24
|
*/
|
|
22
25
|
|
|
23
26
|
count(params) {
|
|
24
|
-
return strapi.query(
|
|
27
|
+
return strapi.db.query(USER_MODEL_UID).count({ where: params });
|
|
25
28
|
},
|
|
26
29
|
|
|
27
30
|
/**
|
|
28
|
-
*
|
|
31
|
+
* Hashes password fields in the provided values object if they are present.
|
|
32
|
+
* It checks each key in the values object against the model's attributes and
|
|
33
|
+
* hashes it if the attribute type is 'password',
|
|
29
34
|
*
|
|
30
|
-
* @
|
|
35
|
+
* @param {object} values - The object containing the fields to be hashed.
|
|
36
|
+
* @return {object} The values object with hashed password fields if they were present.
|
|
31
37
|
*/
|
|
38
|
+
async ensureHashedPasswords(values) {
|
|
39
|
+
const attributes = strapi.getModel(USER_MODEL_UID).attributes;
|
|
40
|
+
|
|
41
|
+
for (const key in values) {
|
|
42
|
+
if (attributes[key] && attributes[key].type === 'password') {
|
|
43
|
+
// Check if a custom encryption.rounds has been set on the password attribute
|
|
44
|
+
const rounds = toNumber(getOr(10, 'encryption.rounds', attributes[key]));
|
|
45
|
+
values[key] = await bcrypt.hash(values[key], rounds);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return values;
|
|
50
|
+
},
|
|
32
51
|
|
|
33
52
|
/**
|
|
34
53
|
* Promise to add a/an user.
|
|
35
54
|
* @return {Promise}
|
|
36
55
|
*/
|
|
37
56
|
async add(values) {
|
|
38
|
-
return strapi.
|
|
39
|
-
data: values,
|
|
57
|
+
return strapi.db.query(USER_MODEL_UID).create({
|
|
58
|
+
data: await this.ensureHashedPasswords(values),
|
|
40
59
|
populate: ['role'],
|
|
41
60
|
});
|
|
42
61
|
},
|
|
@@ -48,8 +67,9 @@ module.exports = ({ strapi }) => ({
|
|
|
48
67
|
* @return {Promise}
|
|
49
68
|
*/
|
|
50
69
|
async edit(userId, params = {}) {
|
|
51
|
-
return strapi.
|
|
52
|
-
|
|
70
|
+
return strapi.db.query(USER_MODEL_UID).update({
|
|
71
|
+
where: { id: userId },
|
|
72
|
+
data: await this.ensureHashedPasswords(params),
|
|
53
73
|
populate: ['role'],
|
|
54
74
|
});
|
|
55
75
|
},
|
|
@@ -59,7 +79,14 @@ module.exports = ({ strapi }) => ({
|
|
|
59
79
|
* @return {Promise}
|
|
60
80
|
*/
|
|
61
81
|
fetch(id, params) {
|
|
62
|
-
|
|
82
|
+
const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});
|
|
83
|
+
|
|
84
|
+
return strapi.db.query(USER_MODEL_UID).findOne({
|
|
85
|
+
...query,
|
|
86
|
+
where: {
|
|
87
|
+
$and: [{ id }, query.where || {}],
|
|
88
|
+
},
|
|
89
|
+
});
|
|
63
90
|
},
|
|
64
91
|
|
|
65
92
|
/**
|
|
@@ -67,9 +94,7 @@ module.exports = ({ strapi }) => ({
|
|
|
67
94
|
* @return {Promise}
|
|
68
95
|
*/
|
|
69
96
|
fetchAuthenticatedUser(id) {
|
|
70
|
-
return strapi
|
|
71
|
-
.query('plugin::users-permissions.user')
|
|
72
|
-
.findOne({ where: { id }, populate: ['role'] });
|
|
97
|
+
return strapi.db.query(USER_MODEL_UID).findOne({ where: { id }, populate: ['role'] });
|
|
73
98
|
},
|
|
74
99
|
|
|
75
100
|
/**
|
|
@@ -77,7 +102,9 @@ module.exports = ({ strapi }) => ({
|
|
|
77
102
|
* @return {Promise}
|
|
78
103
|
*/
|
|
79
104
|
fetchAll(params) {
|
|
80
|
-
|
|
105
|
+
const query = strapi.get('query-params').transform(USER_MODEL_UID, params ?? {});
|
|
106
|
+
|
|
107
|
+
return strapi.db.query(USER_MODEL_UID).findMany(query);
|
|
81
108
|
},
|
|
82
109
|
|
|
83
110
|
/**
|
|
@@ -85,7 +112,7 @@ module.exports = ({ strapi }) => ({
|
|
|
85
112
|
* @return {Promise}
|
|
86
113
|
*/
|
|
87
114
|
async remove(params) {
|
|
88
|
-
return strapi.query(
|
|
115
|
+
return strapi.db.query(USER_MODEL_UID).delete({ where: params });
|
|
89
116
|
},
|
|
90
117
|
|
|
91
118
|
validatePassword(password, hash) {
|
|
@@ -95,14 +122,20 @@ module.exports = ({ strapi }) => ({
|
|
|
95
122
|
async sendConfirmationEmail(user) {
|
|
96
123
|
const userPermissionService = getService('users-permissions');
|
|
97
124
|
const pluginStore = await strapi.store({ type: 'plugin', name: 'users-permissions' });
|
|
98
|
-
const userSchema = strapi.getModel(
|
|
125
|
+
const userSchema = strapi.getModel(USER_MODEL_UID);
|
|
99
126
|
|
|
100
127
|
const settings = await pluginStore
|
|
101
128
|
.get({ key: 'email' })
|
|
102
129
|
.then((storeEmail) => storeEmail.email_confirmation.options);
|
|
103
130
|
|
|
104
131
|
// Sanitize the template's user information
|
|
105
|
-
const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(
|
|
132
|
+
const sanitizedUserInfo = await sanitize.sanitizers.defaultSanitizeOutput(
|
|
133
|
+
{
|
|
134
|
+
schema: userSchema,
|
|
135
|
+
getModel: strapi.getModel.bind(strapi),
|
|
136
|
+
},
|
|
137
|
+
user
|
|
138
|
+
);
|
|
106
139
|
|
|
107
140
|
const confirmationToken = crypto.randomBytes(20).toString('hex');
|
|
108
141
|
|
|
@@ -112,9 +145,13 @@ module.exports = ({ strapi }) => ({
|
|
|
112
145
|
|
|
113
146
|
try {
|
|
114
147
|
settings.message = await userPermissionService.template(settings.message, {
|
|
115
|
-
URL: urlJoin(
|
|
116
|
-
|
|
117
|
-
|
|
148
|
+
URL: urlJoin(
|
|
149
|
+
strapi.config.get('server.absoluteUrl'),
|
|
150
|
+
apiPrefix,
|
|
151
|
+
'/auth/email-confirmation'
|
|
152
|
+
),
|
|
153
|
+
SERVER_URL: strapi.config.get('server.absoluteUrl'),
|
|
154
|
+
ADMIN_URL: strapi.config.get('admin.absoluteUrl'),
|
|
118
155
|
USER: sanitizedUserInfo,
|
|
119
156
|
CODE: confirmationToken,
|
|
120
157
|
});
|
|
@@ -6,7 +6,7 @@ const urlJoin = require('url-join');
|
|
|
6
6
|
const {
|
|
7
7
|
template: { createStrictInterpolationRegExp },
|
|
8
8
|
errors,
|
|
9
|
-
|
|
9
|
+
objects,
|
|
10
10
|
} = require('@strapi/utils');
|
|
11
11
|
|
|
12
12
|
const { getService } = require('../utils');
|
|
@@ -45,7 +45,7 @@ module.exports = ({ strapi }) => ({
|
|
|
45
45
|
return action[Symbol.for('__type__')].includes('content-api');
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
_.forEach(strapi.
|
|
48
|
+
_.forEach(strapi.apis, (api, apiName) => {
|
|
49
49
|
const controllers = _.reduce(
|
|
50
50
|
api.controllers,
|
|
51
51
|
(acc, controller, controllerName) => {
|
|
@@ -105,7 +105,7 @@ module.exports = ({ strapi }) => ({
|
|
|
105
105
|
async getRoutes() {
|
|
106
106
|
const routesMap = {};
|
|
107
107
|
|
|
108
|
-
_.forEach(strapi.
|
|
108
|
+
_.forEach(strapi.apis, (api, apiName) => {
|
|
109
109
|
const routes = _.flatMap(api.routes, (route) => {
|
|
110
110
|
if (_.has(route, 'routes')) {
|
|
111
111
|
return route.routes;
|
|
@@ -151,12 +151,12 @@ module.exports = ({ strapi }) => ({
|
|
|
151
151
|
},
|
|
152
152
|
|
|
153
153
|
async syncPermissions() {
|
|
154
|
-
const roles = await strapi.query('plugin::users-permissions.role').findMany();
|
|
155
|
-
const dbPermissions = await strapi.query('plugin::users-permissions.permission').findMany();
|
|
154
|
+
const roles = await strapi.db.query('plugin::users-permissions.role').findMany();
|
|
155
|
+
const dbPermissions = await strapi.db.query('plugin::users-permissions.permission').findMany();
|
|
156
156
|
|
|
157
157
|
const permissionsFoundInDB = _.uniq(_.map(dbPermissions, 'action'));
|
|
158
158
|
|
|
159
|
-
const appActions = _.flatMap(strapi.
|
|
159
|
+
const appActions = _.flatMap(strapi.apis, (api, apiName) => {
|
|
160
160
|
return _.flatMap(api.controllers, (controller, controllerName) => {
|
|
161
161
|
return _.keys(controller).map((actionName) => {
|
|
162
162
|
return `api::${apiName}.${controllerName}.${actionName}`;
|
|
@@ -178,7 +178,9 @@ module.exports = ({ strapi }) => ({
|
|
|
178
178
|
|
|
179
179
|
await Promise.all(
|
|
180
180
|
toDelete.map((action) => {
|
|
181
|
-
return strapi.
|
|
181
|
+
return strapi.db
|
|
182
|
+
.query('plugin::users-permissions.permission')
|
|
183
|
+
.delete({ where: { action } });
|
|
182
184
|
})
|
|
183
185
|
);
|
|
184
186
|
|
|
@@ -192,7 +194,7 @@ module.exports = ({ strapi }) => ({
|
|
|
192
194
|
|
|
193
195
|
await Promise.all(
|
|
194
196
|
toCreate.map((action) => {
|
|
195
|
-
return strapi.query('plugin::users-permissions.permission').create({
|
|
197
|
+
return strapi.db.query('plugin::users-permissions.permission').create({
|
|
196
198
|
data: {
|
|
197
199
|
action,
|
|
198
200
|
role: role.id,
|
|
@@ -205,10 +207,10 @@ module.exports = ({ strapi }) => ({
|
|
|
205
207
|
},
|
|
206
208
|
|
|
207
209
|
async initialize() {
|
|
208
|
-
const roleCount = await strapi.query('plugin::users-permissions.role').count();
|
|
210
|
+
const roleCount = await strapi.db.query('plugin::users-permissions.role').count();
|
|
209
211
|
|
|
210
212
|
if (roleCount === 0) {
|
|
211
|
-
await strapi.query('plugin::users-permissions.role').create({
|
|
213
|
+
await strapi.db.query('plugin::users-permissions.role').create({
|
|
212
214
|
data: {
|
|
213
215
|
name: 'Authenticated',
|
|
214
216
|
description: 'Default role given to authenticated user.',
|
|
@@ -216,7 +218,7 @@ module.exports = ({ strapi }) => ({
|
|
|
216
218
|
},
|
|
217
219
|
});
|
|
218
220
|
|
|
219
|
-
await strapi.query('plugin::users-permissions.role').create({
|
|
221
|
+
await strapi.db.query('plugin::users-permissions.role').create({
|
|
220
222
|
data: {
|
|
221
223
|
name: 'Public',
|
|
222
224
|
description: 'Default role given to unauthenticated user.',
|
|
@@ -229,13 +231,13 @@ module.exports = ({ strapi }) => ({
|
|
|
229
231
|
},
|
|
230
232
|
|
|
231
233
|
async updateUserRole(user, role) {
|
|
232
|
-
return strapi
|
|
234
|
+
return strapi.db
|
|
233
235
|
.query('plugin::users-permissions.user')
|
|
234
236
|
.update({ where: { id: user.id }, data: { role } });
|
|
235
237
|
},
|
|
236
238
|
|
|
237
239
|
template(layout, data) {
|
|
238
|
-
const allowedTemplateVariables = keysDeep(data);
|
|
240
|
+
const allowedTemplateVariables = objects.keysDeep(data);
|
|
239
241
|
|
|
240
242
|
// Create a strict interpolation RegExp based on possible variable names
|
|
241
243
|
const interpolate = createStrictInterpolationRegExp(allowedTemplateVariables, 'g');
|
package/server/utils/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import * as user from '../services/user';
|
|
|
3
3
|
import * as role from '../services/role';
|
|
4
4
|
import * as jwt from '../services/jwt';
|
|
5
5
|
import * as providers from '../services/providers';
|
|
6
|
+
import * as providersRegistry from '../services/providers-registry';
|
|
6
7
|
import * as permission from '../services/permission';
|
|
7
8
|
|
|
8
9
|
type S = {
|
|
@@ -11,7 +12,7 @@ type S = {
|
|
|
11
12
|
user: typeof user;
|
|
12
13
|
jwt: typeof jwt;
|
|
13
14
|
providers: typeof providers;
|
|
14
|
-
['providers-registry']: typeof
|
|
15
|
+
['providers-registry']: typeof providersRegistry;
|
|
15
16
|
permission: typeof permission;
|
|
16
17
|
};
|
|
17
18
|
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const { curry } = require('lodash/fp');
|
|
4
|
-
const { traverseEntity,
|
|
4
|
+
const { traverseEntity, async } = require('@strapi/utils');
|
|
5
5
|
|
|
6
6
|
const { removeUserRelationFromRoleEntities } = require('./visitors');
|
|
7
7
|
|
|
8
8
|
const sanitizeUserRelationFromRoleEntities = curry((schema, entity) => {
|
|
9
|
-
return traverseEntity(
|
|
9
|
+
return traverseEntity(
|
|
10
|
+
removeUserRelationFromRoleEntities,
|
|
11
|
+
{ schema, getModel: strapi.getModel.bind(strapi) },
|
|
12
|
+
entity
|
|
13
|
+
);
|
|
10
14
|
});
|
|
11
15
|
|
|
12
16
|
const defaultSanitizeOutput = curry((schema, entity) => {
|
|
13
|
-
return
|
|
17
|
+
return async.pipe(sanitizeUserRelationFromRoleEntities(schema))(entity);
|
|
14
18
|
});
|
|
15
19
|
|
|
16
20
|
module.exports = {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
module.exports = ({ schema, key, attribute }, { remove }) => {
|
|
4
4
|
if (
|
|
5
|
-
attribute
|
|
6
|
-
attribute
|
|
5
|
+
attribute?.type === 'relation' &&
|
|
6
|
+
attribute?.target === 'plugin::users-permissions.user' &&
|
|
7
7
|
schema.uid === 'plugin::users-permissions.role'
|
|
8
8
|
) {
|
|
9
9
|
remove(key);
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getFetchClient } from '@strapi/helper-plugin';
|
|
2
|
-
|
|
3
|
-
export const fetchData = async (toggleNotification, notifyStatus) => {
|
|
4
|
-
try {
|
|
5
|
-
const { get } = getFetchClient();
|
|
6
|
-
const { data } = await get('/users-permissions/roles');
|
|
7
|
-
notifyStatus('The roles have loaded successfully');
|
|
8
|
-
|
|
9
|
-
return data;
|
|
10
|
-
} catch (err) {
|
|
11
|
-
toggleNotification({
|
|
12
|
-
type: 'warning',
|
|
13
|
-
message: { id: 'notification.error' },
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
throw new Error(err);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export const deleteData = async (id, toggleNotification) => {
|
|
21
|
-
try {
|
|
22
|
-
const { del } = getFetchClient();
|
|
23
|
-
await del(`/users-permissions/roles/${id}`);
|
|
24
|
-
} catch (error) {
|
|
25
|
-
toggleNotification({
|
|
26
|
-
type: 'warning',
|
|
27
|
-
message: { id: 'notification.error', defaultMessage: 'An error occured' },
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
const ar = {
|
|
2
|
-
"BoundRoute.title": "Bound route to",
|
|
3
|
-
"EditForm.inputSelect.description.role": "سيتم إرفاق المستخدم المصادق الجديد بالدور المحدد.",
|
|
4
|
-
"EditForm.inputSelect.label.role": "الدور الافتراضي للمستخدمين المصادقين",
|
|
5
|
-
"EditForm.inputToggle.description.email": "عدم السماح للمستخدم بإنشاء حسابات متعددة باستخدام نفس عنوان البريد الإلكتروني مع موفري مصادقة مختلفين.",
|
|
6
|
-
"EditForm.inputToggle.description.sign-up": "عند تعطيل (OFF) ، يتم حظر عملية التسجيل. لا أحد يستطيع الاشتراك بعد الآن بغض النظر عن المزود المستخدم.",
|
|
7
|
-
"EditForm.inputToggle.label.email": "حساب واحد لكل بريد الاكتروني",
|
|
8
|
-
"EditForm.inputToggle.label.sign-up": "تفعيل التسجيل",
|
|
9
|
-
"HeaderNav.link.advancedSettings": "إعدادات متقدمة",
|
|
10
|
-
"HeaderNav.link.emailTemplates": "قوالب الإيميل",
|
|
11
|
-
"HeaderNav.link.providers": "مزودين",
|
|
12
|
-
"Plugin.permissions.plugins.description": "حدد جميع الإجراءات المسموح بها للإضافة {name}.",
|
|
13
|
-
"Plugins.header.description": "يتم سرد الإجراءات المحددة المرتبطة بالمسار أدناه.",
|
|
14
|
-
"Plugins.header.title": "الصلاحيات",
|
|
15
|
-
"Policies.header.hint": "حدد إجراءات التطبيق أو إجراءات الإضافة وانقر على رمز الترس لعرض المسار المرتبط",
|
|
16
|
-
"Policies.header.title": "إعدادات متقدمة",
|
|
17
|
-
"PopUpForm.Email.email_templates.inputDescription": "إذا كنت غير متأكد من كيفية استخدام المتغيرات ، {link}",
|
|
18
|
-
"PopUpForm.Email.options.from.email.label": "البريد الإلكتروني للشاحن",
|
|
19
|
-
"PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
|
|
20
|
-
"PopUpForm.Email.options.from.name.label": "أسم المورد",
|
|
21
|
-
"PopUpForm.Email.options.from.name.placeholder": "Kai Doe",
|
|
22
|
-
"PopUpForm.Email.options.message.label": "الرسالة",
|
|
23
|
-
"PopUpForm.Email.options.object.label": "موضوع",
|
|
24
|
-
"PopUpForm.Email.options.response_email.label": "البريد الإلكتروني للاستجابة",
|
|
25
|
-
"PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
|
|
26
|
-
"PopUpForm.Providers.enabled.description": "في حالة التعطيل ، لن يتمكن المستخدمون من استخدام هذا الموفر.",
|
|
27
|
-
"PopUpForm.Providers.enabled.label": "مفعل",
|
|
28
|
-
"PopUpForm.Providers.key.label": "معرف العميل",
|
|
29
|
-
"PopUpForm.Providers.key.placeholder": "نص",
|
|
30
|
-
"PopUpForm.Providers.redirectURL.front-end.label": "عنوان URL لإعادة التوجيه إلى تطبيق الواجهة الأمامية (front-end)",
|
|
31
|
-
"PopUpForm.Providers.secret.label": "سر العميل (Client Secret)",
|
|
32
|
-
"PopUpForm.Providers.secret.placeholder": "نص",
|
|
33
|
-
"PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
|
|
34
|
-
"PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
|
|
35
|
-
"PopUpForm.header.edit.email-templates": "تحرير قوالب البريد الإلكتروني",
|
|
36
|
-
"notification.success.submit": "تم تحديث الإعدادات",
|
|
37
|
-
"plugin.description.long": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT. يأتي هذا الملحق أيضًا مع إستراتيجية ACL التي تسمح لك بإدارة الأذونات بين مجموعات المستخدمين.",
|
|
38
|
-
"plugin.description.short": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT",
|
|
39
|
-
"plugin.name": "الأدوار والصلاحية"
|
|
40
|
-
};
|
|
41
|
-
export {
|
|
42
|
-
ar as default
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=ar-MvD8Ghac.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-MvD8Ghac.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const ar = {
|
|
4
|
-
"BoundRoute.title": "Bound route to",
|
|
5
|
-
"EditForm.inputSelect.description.role": "سيتم إرفاق المستخدم المصادق الجديد بالدور المحدد.",
|
|
6
|
-
"EditForm.inputSelect.label.role": "الدور الافتراضي للمستخدمين المصادقين",
|
|
7
|
-
"EditForm.inputToggle.description.email": "عدم السماح للمستخدم بإنشاء حسابات متعددة باستخدام نفس عنوان البريد الإلكتروني مع موفري مصادقة مختلفين.",
|
|
8
|
-
"EditForm.inputToggle.description.sign-up": "عند تعطيل (OFF) ، يتم حظر عملية التسجيل. لا أحد يستطيع الاشتراك بعد الآن بغض النظر عن المزود المستخدم.",
|
|
9
|
-
"EditForm.inputToggle.label.email": "حساب واحد لكل بريد الاكتروني",
|
|
10
|
-
"EditForm.inputToggle.label.sign-up": "تفعيل التسجيل",
|
|
11
|
-
"HeaderNav.link.advancedSettings": "إعدادات متقدمة",
|
|
12
|
-
"HeaderNav.link.emailTemplates": "قوالب الإيميل",
|
|
13
|
-
"HeaderNav.link.providers": "مزودين",
|
|
14
|
-
"Plugin.permissions.plugins.description": "حدد جميع الإجراءات المسموح بها للإضافة {name}.",
|
|
15
|
-
"Plugins.header.description": "يتم سرد الإجراءات المحددة المرتبطة بالمسار أدناه.",
|
|
16
|
-
"Plugins.header.title": "الصلاحيات",
|
|
17
|
-
"Policies.header.hint": "حدد إجراءات التطبيق أو إجراءات الإضافة وانقر على رمز الترس لعرض المسار المرتبط",
|
|
18
|
-
"Policies.header.title": "إعدادات متقدمة",
|
|
19
|
-
"PopUpForm.Email.email_templates.inputDescription": "إذا كنت غير متأكد من كيفية استخدام المتغيرات ، {link}",
|
|
20
|
-
"PopUpForm.Email.options.from.email.label": "البريد الإلكتروني للشاحن",
|
|
21
|
-
"PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
|
|
22
|
-
"PopUpForm.Email.options.from.name.label": "أسم المورد",
|
|
23
|
-
"PopUpForm.Email.options.from.name.placeholder": "Kai Doe",
|
|
24
|
-
"PopUpForm.Email.options.message.label": "الرسالة",
|
|
25
|
-
"PopUpForm.Email.options.object.label": "موضوع",
|
|
26
|
-
"PopUpForm.Email.options.response_email.label": "البريد الإلكتروني للاستجابة",
|
|
27
|
-
"PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
|
|
28
|
-
"PopUpForm.Providers.enabled.description": "في حالة التعطيل ، لن يتمكن المستخدمون من استخدام هذا الموفر.",
|
|
29
|
-
"PopUpForm.Providers.enabled.label": "مفعل",
|
|
30
|
-
"PopUpForm.Providers.key.label": "معرف العميل",
|
|
31
|
-
"PopUpForm.Providers.key.placeholder": "نص",
|
|
32
|
-
"PopUpForm.Providers.redirectURL.front-end.label": "عنوان URL لإعادة التوجيه إلى تطبيق الواجهة الأمامية (front-end)",
|
|
33
|
-
"PopUpForm.Providers.secret.label": "سر العميل (Client Secret)",
|
|
34
|
-
"PopUpForm.Providers.secret.placeholder": "نص",
|
|
35
|
-
"PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
|
|
36
|
-
"PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
|
|
37
|
-
"PopUpForm.header.edit.email-templates": "تحرير قوالب البريد الإلكتروني",
|
|
38
|
-
"notification.success.submit": "تم تحديث الإعدادات",
|
|
39
|
-
"plugin.description.long": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT. يأتي هذا الملحق أيضًا مع إستراتيجية ACL التي تسمح لك بإدارة الأذونات بين مجموعات المستخدمين.",
|
|
40
|
-
"plugin.description.short": "حماية الـAPI الخاص بك مع عملية مصادقة كاملة استناداً إلى JWT",
|
|
41
|
-
"plugin.name": "الأدوار والصلاحية"
|
|
42
|
-
};
|
|
43
|
-
exports.default = ar;
|
|
44
|
-
//# sourceMappingURL=ar-t5qTFaAD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-t5qTFaAD.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
const cs = {
|
|
2
|
-
"BoundRoute.title": "Spojit adresu s",
|
|
3
|
-
"EditForm.inputSelect.description.role": "Připojí nově autentifikovaného uživatele ke svolené roli.",
|
|
4
|
-
"EditForm.inputSelect.label.role": "Výchozí role pro autentifikovaného uživatele",
|
|
5
|
-
"EditForm.inputToggle.description.email": "Zabránit uživateli vytvářet různé účty se stejným e-mailem a jinými poskytovateli autentifikace.",
|
|
6
|
-
"EditForm.inputToggle.description.email-confirmation": "Pokud je tato funkce povolena (ON), nově registrovaní uživatelé dostanou potvrzující e-mail.",
|
|
7
|
-
"EditForm.inputToggle.description.email-confirmation-redirection": "Po potvrzení e-mailu, zvolte kam budete přesměrováni.",
|
|
8
|
-
"EditForm.inputToggle.description.email-reset-password": "Adresa stránky obnovení hesla vaší aplikace",
|
|
9
|
-
"EditForm.inputToggle.description.sign-up": "Pokud je tato možnost zakázána (OFF), není možno projít registrací. Nikdo se již nemůže připojit, bez ohledu jakého použije poskytovatele.",
|
|
10
|
-
"EditForm.inputToggle.label.email": "Jeden účet na e-mail",
|
|
11
|
-
"EditForm.inputToggle.label.email-confirmation": "Povolit potvrzení z e-mailu",
|
|
12
|
-
"EditForm.inputToggle.label.email-confirmation-redirection": "Adresa pro přesměrování",
|
|
13
|
-
"EditForm.inputToggle.label.email-reset-password": "Stránka pro obnovení hesla",
|
|
14
|
-
"EditForm.inputToggle.label.sign-up": "Povolit registrace",
|
|
15
|
-
"HeaderNav.link.advancedSettings": "Pokročilá nastavení",
|
|
16
|
-
"HeaderNav.link.emailTemplates": "E-mailové šablony",
|
|
17
|
-
"HeaderNav.link.providers": "Poskytovatelé",
|
|
18
|
-
"Plugin.permissions.plugins.description": "Nastavit všechny akce pro zásuvný modul {name}.",
|
|
19
|
-
"Plugins.header.description": "Pouze akce spojené s adresou jsou vypsány níže.",
|
|
20
|
-
"Plugins.header.title": "Povolení",
|
|
21
|
-
"Policies.header.hint": "Vyberte akce aplikace, nebo akce zásuvného modulu a klikněte na ikonku ozubeného kolečka pro zobrazení adresy s nimi spojenou.",
|
|
22
|
-
"Policies.header.title": "Pokročilá nastavení",
|
|
23
|
-
"PopUpForm.Email.email_templates.inputDescription": "Pokud si nejste jisti jak používat proměnné, {link}",
|
|
24
|
-
"PopUpForm.Email.options.from.email.label": "Odesilatelův e-mail",
|
|
25
|
-
"PopUpForm.Email.options.from.email.placeholder": "jannovak@gmail.com",
|
|
26
|
-
"PopUpForm.Email.options.from.name.label": "Jméno odesilatele",
|
|
27
|
-
"PopUpForm.Email.options.from.name.placeholder": "Jan Novák",
|
|
28
|
-
"PopUpForm.Email.options.message.label": "Zpráva",
|
|
29
|
-
"PopUpForm.Email.options.object.label": "Předmět",
|
|
30
|
-
"PopUpForm.Email.options.response_email.label": "Response e-mail",
|
|
31
|
-
"PopUpForm.Email.options.response_email.placeholder": "jannovak@gmail.com",
|
|
32
|
-
"PopUpForm.Providers.enabled.description": "If disabled, users won't be able to use this provider.",
|
|
33
|
-
"PopUpForm.Providers.enabled.label": "Povolit",
|
|
34
|
-
"PopUpForm.Providers.key.label": "Client ID",
|
|
35
|
-
"PopUpForm.Providers.key.placeholder": "TEXT",
|
|
36
|
-
"PopUpForm.Providers.redirectURL.front-end.label": "Adresa pro přesměrování na vaši front-end aplikaci",
|
|
37
|
-
"PopUpForm.Providers.secret.label": "Client Secret",
|
|
38
|
-
"PopUpForm.Providers.secret.placeholder": "TEXT",
|
|
39
|
-
"PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
|
|
40
|
-
"PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
|
|
41
|
-
"PopUpForm.header.edit.email-templates": "Upravit e-mailové šablony",
|
|
42
|
-
"notification.success.submit": "Nastavení bylo aktualizování",
|
|
43
|
-
"plugin.description.long": "Chraňte své API pomocí kompletního autentifikačního procesu, založeného na JWT. Tento zásuvný modul obsahuje ACL strategii, která vám umožní spravovat oprávnění mezi skupinami uživatelů.",
|
|
44
|
-
"plugin.description.short": "Chraňte své API pomocí kompletního autentifikačního procesu, založeného na JWT",
|
|
45
|
-
"plugin.name": "Role a oprávnění"
|
|
46
|
-
};
|
|
47
|
-
export {
|
|
48
|
-
cs as default
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=cs-BMuXwxA1.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cs-BMuXwxA1.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|