@strapi/plugin-users-permissions 5.12.1 → 5.12.2
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/components/BoundRoute/getMethodColor.js +49 -0
- package/dist/admin/components/BoundRoute/getMethodColor.js.map +1 -0
- package/dist/admin/components/BoundRoute/getMethodColor.mjs +47 -0
- package/dist/admin/components/BoundRoute/getMethodColor.mjs.map +1 -0
- package/dist/admin/components/BoundRoute/index.js +98 -0
- package/dist/admin/components/BoundRoute/index.js.map +1 -0
- package/dist/admin/components/BoundRoute/index.mjs +96 -0
- package/dist/admin/components/BoundRoute/index.mjs.map +1 -0
- package/dist/admin/components/FormModal/Input/index.js +123 -0
- package/dist/admin/components/FormModal/Input/index.js.map +1 -0
- package/dist/admin/components/FormModal/Input/index.mjs +121 -0
- package/dist/admin/components/FormModal/Input/index.mjs.map +1 -0
- package/dist/admin/components/FormModal/index.js +110 -0
- package/dist/admin/components/FormModal/index.js.map +1 -0
- package/dist/admin/components/FormModal/index.mjs +108 -0
- package/dist/admin/components/FormModal/index.mjs.map +1 -0
- package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js +33 -0
- package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.js.map +1 -0
- package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs +31 -0
- package/dist/admin/components/Permissions/PermissionRow/CheckboxWrapper.mjs.map +1 -0
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +156 -0
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -0
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +154 -0
- package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -0
- package/dist/admin/components/Permissions/PermissionRow/index.js +50 -0
- package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -0
- package/dist/admin/components/Permissions/PermissionRow/index.mjs +48 -0
- package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -0
- package/dist/admin/components/Permissions/index.js +52 -0
- package/dist/admin/components/Permissions/index.js.map +1 -0
- package/dist/admin/components/Permissions/index.mjs +50 -0
- package/dist/admin/components/Permissions/index.mjs.map +1 -0
- package/dist/admin/components/Permissions/init.js +15 -0
- package/dist/admin/components/Permissions/init.js.map +1 -0
- package/dist/admin/components/Permissions/init.mjs +13 -0
- package/dist/admin/components/Permissions/init.mjs.map +1 -0
- package/dist/admin/components/Permissions/reducer.js +34 -0
- package/dist/admin/components/Permissions/reducer.js.map +1 -0
- package/dist/admin/components/Permissions/reducer.mjs +31 -0
- package/dist/admin/components/Permissions/reducer.mjs.map +1 -0
- package/dist/admin/components/Policies/index.js +67 -0
- package/dist/admin/components/Policies/index.js.map +1 -0
- package/dist/admin/components/Policies/index.mjs +65 -0
- package/dist/admin/components/Policies/index.mjs.map +1 -0
- package/dist/admin/components/UsersPermissions/index.js +115 -0
- package/dist/admin/components/UsersPermissions/index.js.map +1 -0
- package/dist/admin/components/UsersPermissions/index.mjs +113 -0
- package/dist/admin/components/UsersPermissions/index.mjs.map +1 -0
- package/dist/admin/components/UsersPermissions/init.js +13 -0
- package/dist/admin/components/UsersPermissions/init.js.map +1 -0
- package/dist/admin/components/UsersPermissions/init.mjs +11 -0
- package/dist/admin/components/UsersPermissions/init.mjs.map +1 -0
- package/dist/admin/components/UsersPermissions/reducer.js +73 -0
- package/dist/admin/components/UsersPermissions/reducer.js.map +1 -0
- package/dist/admin/components/UsersPermissions/reducer.mjs +68 -0
- package/dist/admin/components/UsersPermissions/reducer.mjs.map +1 -0
- package/dist/admin/constants.js +81 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +79 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/contexts/UsersPermissionsContext/index.js +23 -0
- package/dist/admin/contexts/UsersPermissionsContext/index.js.map +1 -0
- package/dist/admin/contexts/UsersPermissionsContext/index.mjs +19 -0
- package/dist/admin/contexts/UsersPermissionsContext/index.mjs.map +1 -0
- package/dist/admin/index.js +119 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +120 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +14 -0
- package/dist/admin/package.json.js.map +1 -0
- package/dist/admin/package.json.mjs +11 -0
- package/dist/admin/package.json.mjs.map +1 -0
- package/dist/admin/{chunks/index-DFnYIqrB.js → pages/AdvancedSettings/index.js} +14 -121
- package/dist/admin/pages/AdvancedSettings/index.js.map +1 -0
- package/dist/admin/{chunks/index-Cy-tPfRk.mjs → pages/AdvancedSettings/index.mjs} +6 -94
- package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -0
- package/dist/admin/pages/AdvancedSettings/utils/layout.js +83 -0
- package/dist/admin/pages/AdvancedSettings/utils/layout.js.map +1 -0
- package/dist/admin/pages/AdvancedSettings/utils/layout.mjs +81 -0
- package/dist/admin/pages/AdvancedSettings/utils/layout.mjs.map +1 -0
- package/dist/admin/pages/AdvancedSettings/utils/schema.js +40 -0
- package/dist/admin/pages/AdvancedSettings/utils/schema.js.map +1 -0
- package/dist/admin/pages/AdvancedSettings/utils/schema.mjs +19 -0
- package/dist/admin/pages/AdvancedSettings/utils/schema.mjs.map +1 -0
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js +171 -0
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -0
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +169 -0
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -0
- package/dist/admin/pages/EmailTemplates/components/EmailTable.js +145 -0
- package/dist/admin/pages/EmailTemplates/components/EmailTable.js.map +1 -0
- package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs +143 -0
- package/dist/admin/pages/EmailTemplates/components/EmailTable.mjs.map +1 -0
- package/dist/admin/pages/EmailTemplates/index.js +157 -0
- package/dist/admin/pages/EmailTemplates/index.js.map +1 -0
- package/dist/admin/pages/EmailTemplates/index.mjs +135 -0
- package/dist/admin/pages/EmailTemplates/index.mjs.map +1 -0
- package/dist/admin/pages/EmailTemplates/utils/schema.js +50 -0
- package/dist/admin/pages/EmailTemplates/utils/schema.js.map +1 -0
- package/dist/admin/pages/EmailTemplates/utils/schema.mjs +29 -0
- package/dist/admin/pages/EmailTemplates/utils/schema.mjs.map +1 -0
- package/dist/admin/pages/Providers/index.js +278 -0
- package/dist/admin/pages/Providers/index.js.map +1 -0
- package/dist/admin/pages/Providers/index.mjs +254 -0
- package/dist/admin/pages/Providers/index.mjs.map +1 -0
- package/dist/admin/pages/Providers/utils/forms.js +281 -0
- package/dist/admin/pages/Providers/utils/forms.js.map +1 -0
- package/dist/admin/pages/Providers/utils/forms.mjs +260 -0
- package/dist/admin/pages/Providers/utils/forms.mjs.map +1 -0
- package/dist/admin/pages/Roles/constants.js +31 -0
- package/dist/admin/pages/Roles/constants.js.map +1 -0
- package/dist/admin/pages/Roles/constants.mjs +10 -0
- package/dist/admin/pages/Roles/constants.mjs.map +1 -0
- package/dist/admin/pages/Roles/hooks/usePlugins.js +78 -0
- package/dist/admin/pages/Roles/hooks/usePlugins.js.map +1 -0
- package/dist/admin/pages/Roles/hooks/usePlugins.mjs +76 -0
- package/dist/admin/pages/Roles/hooks/usePlugins.mjs.map +1 -0
- package/dist/admin/pages/Roles/index.js +35 -0
- package/dist/admin/pages/Roles/index.js.map +1 -0
- package/dist/admin/pages/Roles/index.mjs +33 -0
- package/dist/admin/pages/Roles/index.mjs.map +1 -0
- package/dist/admin/pages/Roles/pages/CreatePage.js +225 -0
- package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -0
- package/dist/admin/pages/Roles/pages/CreatePage.mjs +203 -0
- package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -0
- package/dist/admin/pages/Roles/pages/EditPage.js +229 -0
- package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -0
- package/dist/admin/pages/Roles/pages/EditPage.mjs +207 -0
- package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -0
- package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js +125 -0
- package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -0
- package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs +123 -0
- package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -0
- package/dist/admin/pages/Roles/pages/ListPage/index.js +237 -0
- package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -0
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs +234 -0
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -0
- package/dist/admin/pluginId.js +8 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +6 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/{chunks/ar-BJwjobLp.js → translations/ar.json.js} +2 -2
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/{chunks/ar-G6bUGuUb.mjs → translations/ar.json.mjs} +1 -1
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/{chunks/cs-uS_SIEo8.js → translations/cs.json.js} +2 -2
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/{chunks/cs-Bu59JqhG.mjs → translations/cs.json.mjs} +1 -1
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/{chunks/de-7MVMrqqI.js → translations/de.json.js} +2 -2
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/{chunks/de-B81A69_5.mjs → translations/de.json.mjs} +1 -1
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-DwCLGmy9.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-BaelzvBE.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-DwQjkHi_.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-BhgCBe7M.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-BOJOedG5.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-B0wXmvRj.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-BDNWCNs0.js → translations/fr.json.js} +2 -2
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-CGYvGUXg.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/id-UqUPykHZ.js → translations/id.json.js} +2 -2
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/{chunks/id-CNzbwFjA.mjs → translations/id.json.mjs} +1 -1
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/{chunks/it-D5VuyoLU.js → translations/it.json.js} +2 -2
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/{chunks/it-B2H2foTf.mjs → translations/it.json.mjs} +1 -1
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/{chunks/ja-MpqVsCgs.js → translations/ja.json.js} +2 -2
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/{chunks/ja-C0z9d7L9.mjs → translations/ja.json.mjs} +1 -1
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-Bm-grPSc.js → translations/ko.json.js} +2 -2
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-CzUgzpeS.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/{chunks/ms-D7eyBD5H.js → translations/ms.json.js} +2 -2
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/{chunks/ms-CCacxjim.mjs → translations/ms.json.mjs} +1 -1
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/{chunks/nl-BIOwAQtI.js → translations/nl.json.js} +2 -2
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/{chunks/nl-DDC3nZW-.mjs → translations/nl.json.mjs} +1 -1
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-D5BeNrg_.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-XkS463rN.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-BR-DxPBzQGx.js → translations/pt-BR.json.js} +2 -2
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BR-8cC7z8Km.mjs → translations/pt-BR.json.mjs} +1 -1
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-kkCwzNvH.js → translations/pt.json.js} +2 -2
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/{chunks/pt-DQpEvio8.mjs → translations/pt.json.mjs} +1 -1
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-BQ0gHmp3.js → translations/ru.json.js} +2 -2
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-nzL_7Mhg.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sk-nVwAPdYC.js → translations/sk.json.js} +2 -2
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/{chunks/sk-Ddxc_tZA.mjs → translations/sk.json.mjs} +1 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/{chunks/sv-BDfk2A-F.js → translations/sv.json.js} +2 -2
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/{chunks/sv-By3RYpMG.mjs → translations/sv.json.mjs} +1 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/{chunks/th-BtTtpHe2.js → translations/th.json.js} +2 -2
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/{chunks/th-COl50vqb.mjs → translations/th.json.mjs} +1 -1
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-Di-Nf7cT.js → translations/tr.json.js} +2 -2
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-80SJU6jg.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-r5zXTAS7.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-DnrIlPwG.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/vi-D9cCsHsU.js → translations/vi.json.js} +2 -2
- package/dist/admin/translations/vi.json.js.map +1 -0
- package/dist/admin/{chunks/vi-69AF03Iv.mjs → translations/vi.json.mjs} +1 -1
- package/dist/admin/translations/vi.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-CKqQbpsM.js → translations/zh-Hans.json.js} +2 -2
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/{chunks/zh-Hans-DmDcSsp7.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-BzWgJEzz.js → translations/zh.json.js} +2 -2
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-BzSkqxo-.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/cleanPermissions.js +24 -0
- package/dist/admin/utils/cleanPermissions.js.map +1 -0
- package/dist/admin/utils/cleanPermissions.mjs +22 -0
- package/dist/admin/utils/cleanPermissions.mjs.map +1 -0
- package/dist/admin/utils/formatPluginName.js +29 -0
- package/dist/admin/utils/formatPluginName.js.map +1 -0
- package/dist/admin/utils/formatPluginName.mjs +27 -0
- package/dist/admin/utils/formatPluginName.mjs.map +1 -0
- package/dist/admin/utils/getTrad.js +8 -0
- package/dist/admin/utils/getTrad.js.map +1 -0
- package/dist/admin/utils/getTrad.mjs +6 -0
- package/dist/admin/utils/getTrad.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/server/_virtual/_commonjsHelpers.js +8 -0
- package/dist/server/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/server/_virtual/_commonjsHelpers.mjs +6 -0
- package/dist/server/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/dist/server/bootstrap/index.js +145 -0
- package/dist/server/bootstrap/index.js.map +1 -0
- package/dist/server/bootstrap/index.mjs +143 -0
- package/dist/server/bootstrap/index.mjs.map +1 -0
- package/dist/server/bootstrap/users-permissions-actions.js +98 -0
- package/dist/server/bootstrap/users-permissions-actions.js.map +1 -0
- package/dist/server/bootstrap/users-permissions-actions.mjs +96 -0
- package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -0
- package/dist/server/config.js +54 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +52 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/content-types/index.js +30 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +28 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/permission/index.js +44 -0
- package/dist/server/content-types/permission/index.js.map +1 -0
- package/dist/server/content-types/permission/index.mjs +42 -0
- package/dist/server/content-types/permission/index.mjs.map +1 -0
- package/dist/server/content-types/role/index.js +61 -0
- package/dist/server/content-types/role/index.js.map +1 -0
- package/dist/server/content-types/role/index.mjs +59 -0
- package/dist/server/content-types/role/index.mjs.map +1 -0
- package/dist/server/content-types/user/index.js +84 -0
- package/dist/server/content-types/user/index.js.map +1 -0
- package/dist/server/content-types/user/index.mjs +82 -0
- package/dist/server/content-types/user/index.mjs.map +1 -0
- package/dist/server/content-types/user/schema-config.js +25 -0
- package/dist/server/content-types/user/schema-config.js.map +1 -0
- package/dist/server/content-types/user/schema-config.mjs +23 -0
- package/dist/server/content-types/user/schema-config.mjs.map +1 -0
- package/dist/server/controllers/auth.js +429 -0
- package/dist/server/controllers/auth.js.map +1 -0
- package/dist/server/controllers/auth.mjs +427 -0
- package/dist/server/controllers/auth.mjs.map +1 -0
- package/dist/server/controllers/content-manager-user.js +168 -0
- package/dist/server/controllers/content-manager-user.js.map +1 -0
- package/dist/server/controllers/content-manager-user.mjs +166 -0
- package/dist/server/controllers/content-manager-user.mjs.map +1 -0
- package/dist/server/controllers/index.js +33 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +31 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/permissions.js +37 -0
- package/dist/server/controllers/permissions.js.map +1 -0
- package/dist/server/controllers/permissions.mjs +35 -0
- package/dist/server/controllers/permissions.mjs.map +1 -0
- package/dist/server/controllers/role.js +91 -0
- package/dist/server/controllers/role.js.map +1 -0
- package/dist/server/controllers/role.mjs +89 -0
- package/dist/server/controllers/role.mjs.map +1 -0
- package/dist/server/controllers/settings.js +107 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +105 -0
- package/dist/server/controllers/settings.mjs.map +1 -0
- package/dist/server/controllers/user.js +201 -0
- package/dist/server/controllers/user.js.map +1 -0
- package/dist/server/controllers/user.mjs +199 -0
- package/dist/server/controllers/user.mjs.map +1 -0
- package/dist/server/controllers/validation/auth.js +131 -0
- package/dist/server/controllers/validation/auth.js.map +1 -0
- package/dist/server/controllers/validation/auth.mjs +129 -0
- package/dist/server/controllers/validation/auth.mjs.map +1 -0
- package/dist/server/controllers/validation/email-template.js +72 -0
- package/dist/server/controllers/validation/email-template.js.map +1 -0
- package/dist/server/controllers/validation/email-template.mjs +70 -0
- package/dist/server/controllers/validation/email-template.mjs.map +1 -0
- package/dist/server/controllers/validation/user.js +49 -0
- package/dist/server/controllers/validation/user.js.map +1 -0
- package/dist/server/controllers/validation/user.mjs +47 -0
- package/dist/server/controllers/validation/user.mjs.map +1 -0
- package/dist/server/graphql/index.js +66 -0
- package/dist/server/graphql/index.js.map +1 -0
- package/dist/server/graphql/index.mjs +64 -0
- package/dist/server/graphql/index.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/change-password.js +40 -0
- package/dist/server/graphql/mutations/auth/change-password.js.map +1 -0
- package/dist/server/graphql/mutations/auth/change-password.mjs +38 -0
- package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/email-confirmation.js +38 -0
- package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -0
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs +36 -0
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/forgot-password.js +37 -0
- package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -0
- package/dist/server/graphql/mutations/auth/forgot-password.mjs +35 -0
- package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/login.js +40 -0
- package/dist/server/graphql/mutations/auth/login.js.map +1 -0
- package/dist/server/graphql/mutations/auth/login.mjs +38 -0
- package/dist/server/graphql/mutations/auth/login.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/register.js +38 -0
- package/dist/server/graphql/mutations/auth/register.js.map +1 -0
- package/dist/server/graphql/mutations/auth/register.mjs +36 -0
- package/dist/server/graphql/mutations/auth/register.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/reset-password.js +40 -0
- package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -0
- package/dist/server/graphql/mutations/auth/reset-password.mjs +38 -0
- package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -0
- package/dist/server/graphql/mutations/crud/role/create-role.js +37 -0
- package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -0
- package/dist/server/graphql/mutations/crud/role/create-role.mjs +35 -0
- package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -0
- package/dist/server/graphql/mutations/crud/role/delete-role.js +32 -0
- package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -0
- package/dist/server/graphql/mutations/crud/role/delete-role.mjs +30 -0
- package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -0
- package/dist/server/graphql/mutations/crud/role/update-role.js +39 -0
- package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -0
- package/dist/server/graphql/mutations/crud/role/update-role.mjs +37 -0
- package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -0
- package/dist/server/graphql/mutations/crud/user/create-user.js +46 -0
- package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -0
- package/dist/server/graphql/mutations/crud/user/create-user.mjs +44 -0
- package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -0
- package/dist/server/graphql/mutations/crud/user/delete-user.js +44 -0
- package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -0
- package/dist/server/graphql/mutations/crud/user/delete-user.mjs +42 -0
- package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -0
- package/dist/server/graphql/mutations/crud/user/update-user.js +49 -0
- package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -0
- package/dist/server/graphql/mutations/crud/user/update-user.mjs +47 -0
- package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -0
- package/dist/server/graphql/mutations/index.js +58 -0
- package/dist/server/graphql/mutations/index.js.map +1 -0
- package/dist/server/graphql/mutations/index.mjs +56 -0
- package/dist/server/graphql/mutations/index.mjs.map +1 -0
- package/dist/server/graphql/queries/index.js +25 -0
- package/dist/server/graphql/queries/index.js.map +1 -0
- package/dist/server/graphql/queries/index.mjs +23 -0
- package/dist/server/graphql/queries/index.mjs.map +1 -0
- package/dist/server/graphql/queries/me.js +23 -0
- package/dist/server/graphql/queries/me.js.map +1 -0
- package/dist/server/graphql/queries/me.mjs +21 -0
- package/dist/server/graphql/queries/me.mjs.map +1 -0
- package/dist/server/graphql/resolvers-configs.js +93 -0
- package/dist/server/graphql/resolvers-configs.js.map +1 -0
- package/dist/server/graphql/resolvers-configs.mjs +91 -0
- package/dist/server/graphql/resolvers-configs.mjs.map +1 -0
- package/dist/server/graphql/types/create-role-payload.js +20 -0
- package/dist/server/graphql/types/create-role-payload.js.map +1 -0
- package/dist/server/graphql/types/create-role-payload.mjs +18 -0
- package/dist/server/graphql/types/create-role-payload.mjs.map +1 -0
- package/dist/server/graphql/types/delete-role-payload.js +20 -0
- package/dist/server/graphql/types/delete-role-payload.js.map +1 -0
- package/dist/server/graphql/types/delete-role-payload.mjs +18 -0
- package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -0
- package/dist/server/graphql/types/index.js +41 -0
- package/dist/server/graphql/types/index.js.map +1 -0
- package/dist/server/graphql/types/index.mjs +39 -0
- package/dist/server/graphql/types/index.mjs.map +1 -0
- package/dist/server/graphql/types/login-input.js +24 -0
- package/dist/server/graphql/types/login-input.js.map +1 -0
- package/dist/server/graphql/types/login-input.mjs +22 -0
- package/dist/server/graphql/types/login-input.mjs.map +1 -0
- package/dist/server/graphql/types/login-payload.js +23 -0
- package/dist/server/graphql/types/login-payload.js.map +1 -0
- package/dist/server/graphql/types/login-payload.mjs +21 -0
- package/dist/server/graphql/types/login-payload.mjs.map +1 -0
- package/dist/server/graphql/types/me-role.js +23 -0
- package/dist/server/graphql/types/me-role.js.map +1 -0
- package/dist/server/graphql/types/me-role.mjs +21 -0
- package/dist/server/graphql/types/me-role.mjs.map +1 -0
- package/dist/server/graphql/types/me.js +28 -0
- package/dist/server/graphql/types/me.js.map +1 -0
- package/dist/server/graphql/types/me.mjs +26 -0
- package/dist/server/graphql/types/me.mjs.map +1 -0
- package/dist/server/graphql/types/password-payload.js +20 -0
- package/dist/server/graphql/types/password-payload.js.map +1 -0
- package/dist/server/graphql/types/password-payload.mjs +18 -0
- package/dist/server/graphql/types/password-payload.mjs.map +1 -0
- package/dist/server/graphql/types/register-input.js +22 -0
- package/dist/server/graphql/types/register-input.js.map +1 -0
- package/dist/server/graphql/types/register-input.mjs +20 -0
- package/dist/server/graphql/types/register-input.mjs.map +1 -0
- package/dist/server/graphql/types/update-role-payload.js +20 -0
- package/dist/server/graphql/types/update-role-payload.js.map +1 -0
- package/dist/server/graphql/types/update-role-payload.mjs +18 -0
- package/dist/server/graphql/types/update-role-payload.mjs.map +1 -0
- package/dist/server/graphql/types/user-input.js +26 -0
- package/dist/server/graphql/types/user-input.js.map +1 -0
- package/dist/server/graphql/types/user-input.mjs +24 -0
- package/dist/server/graphql/types/user-input.mjs.map +1 -0
- package/dist/server/graphql/utils.js +32 -0
- package/dist/server/graphql/utils.js.map +1 -0
- package/dist/server/graphql/utils.mjs +30 -0
- package/dist/server/graphql/utils.mjs.map +1 -0
- package/dist/server/index.js +4 -4760
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +2 -4758
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/index2.js +39 -0
- package/dist/server/index2.js.map +1 -0
- package/dist/server/index2.mjs +37 -0
- package/dist/server/index2.mjs.map +1 -0
- package/dist/server/middlewares/index.js +18 -0
- package/dist/server/middlewares/index.js.map +1 -0
- package/dist/server/middlewares/index.mjs +16 -0
- package/dist/server/middlewares/index.mjs.map +1 -0
- package/dist/server/middlewares/rateLimit.js +51 -0
- package/dist/server/middlewares/rateLimit.js.map +1 -0
- package/dist/server/middlewares/rateLimit.mjs +49 -0
- package/dist/server/middlewares/rateLimit.mjs.map +1 -0
- package/dist/server/register.js +41 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +39 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/admin/index.js +27 -0
- package/dist/server/routes/admin/index.js.map +1 -0
- package/dist/server/routes/admin/index.mjs +25 -0
- package/dist/server/routes/admin/index.mjs.map +1 -0
- package/dist/server/routes/admin/permissions.js +29 -0
- package/dist/server/routes/admin/permissions.js.map +1 -0
- package/dist/server/routes/admin/permissions.mjs +27 -0
- package/dist/server/routes/admin/permissions.mjs.map +1 -0
- package/dist/server/routes/admin/role.js +99 -0
- package/dist/server/routes/admin/role.js.map +1 -0
- package/dist/server/routes/admin/role.mjs +97 -0
- package/dist/server/routes/admin/role.mjs.map +1 -0
- package/dist/server/routes/admin/settings.js +116 -0
- package/dist/server/routes/admin/settings.js.map +1 -0
- package/dist/server/routes/admin/settings.mjs +114 -0
- package/dist/server/routes/admin/settings.mjs.map +1 -0
- package/dist/server/routes/content-api/auth.js +104 -0
- package/dist/server/routes/content-api/auth.js.map +1 -0
- package/dist/server/routes/content-api/auth.mjs +102 -0
- package/dist/server/routes/content-api/auth.mjs.map +1 -0
- package/dist/server/routes/content-api/index.js +30 -0
- package/dist/server/routes/content-api/index.js.map +1 -0
- package/dist/server/routes/content-api/index.mjs +28 -0
- package/dist/server/routes/content-api/index.mjs.map +1 -0
- package/dist/server/routes/content-api/permissions.js +19 -0
- package/dist/server/routes/content-api/permissions.js.map +1 -0
- package/dist/server/routes/content-api/permissions.mjs +17 -0
- package/dist/server/routes/content-api/permissions.mjs.map +1 -0
- package/dist/server/routes/content-api/role.js +39 -0
- package/dist/server/routes/content-api/role.js.map +1 -0
- package/dist/server/routes/content-api/role.mjs +37 -0
- package/dist/server/routes/content-api/role.mjs.map +1 -0
- package/dist/server/routes/content-api/user.js +70 -0
- package/dist/server/routes/content-api/user.js.map +1 -0
- package/dist/server/routes/content-api/user.mjs +68 -0
- package/dist/server/routes/content-api/user.mjs.map +1 -0
- package/dist/server/routes/index.js +19 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +17 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/index.js +36 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +34 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/jwt.js +50 -0
- package/dist/server/services/jwt.js.map +1 -0
- package/dist/server/services/jwt.mjs +48 -0
- package/dist/server/services/jwt.mjs.map +1 -0
- package/dist/server/services/permission.js +52 -0
- package/dist/server/services/permission.js.map +1 -0
- package/dist/server/services/permission.mjs +50 -0
- package/dist/server/services/permission.mjs.map +1 -0
- package/dist/server/services/providers-registry.js +555 -0
- package/dist/server/services/providers-registry.js.map +1 -0
- package/dist/server/services/providers-registry.mjs +553 -0
- package/dist/server/services/providers-registry.mjs.map +1 -0
- package/dist/server/services/providers.js +111 -0
- package/dist/server/services/providers.js.map +1 -0
- package/dist/server/services/providers.mjs +109 -0
- package/dist/server/services/providers.mjs.map +1 -0
- package/dist/server/services/role.js +186 -0
- package/dist/server/services/role.js.map +1 -0
- package/dist/server/services/role.mjs +184 -0
- package/dist/server/services/role.mjs.map +1 -0
- package/dist/server/services/user.js +179 -0
- package/dist/server/services/user.js.map +1 -0
- package/dist/server/services/user.mjs +177 -0
- package/dist/server/services/user.mjs.map +1 -0
- package/dist/server/services/users-permissions.js +247 -0
- package/dist/server/services/users-permissions.js.map +1 -0
- package/dist/server/services/users-permissions.mjs +245 -0
- package/dist/server/services/users-permissions.mjs.map +1 -0
- package/dist/server/strategies/users-permissions.js +114 -0
- package/dist/server/strategies/users-permissions.js.map +1 -0
- package/dist/server/strategies/users-permissions.mjs +112 -0
- package/dist/server/strategies/users-permissions.mjs.map +1 -0
- package/dist/server/utils/index.js +22 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +20 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/server/utils/sanitize/index.js +21 -0
- package/dist/server/utils/sanitize/index.js.map +1 -0
- package/dist/server/utils/sanitize/index.mjs +19 -0
- package/dist/server/utils/sanitize/index.mjs.map +1 -0
- package/dist/server/utils/sanitize/sanitizers.js +32 -0
- package/dist/server/utils/sanitize/sanitizers.js.map +1 -0
- package/dist/server/utils/sanitize/sanitizers.mjs +30 -0
- package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -0
- package/dist/server/utils/sanitize/visitors/index.js +17 -0
- package/dist/server/utils/sanitize/visitors/index.js.map +1 -0
- package/dist/server/utils/sanitize/visitors/index.mjs +15 -0
- package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -0
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js +17 -0
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -0
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs +15 -0
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -0
- package/package.json +3 -3
- package/rollup.config.mjs +15 -48
- package/dist/admin/chunks/ar-BJwjobLp.js.map +0 -1
- package/dist/admin/chunks/ar-G6bUGuUb.mjs.map +0 -1
- package/dist/admin/chunks/cs-Bu59JqhG.mjs.map +0 -1
- package/dist/admin/chunks/cs-uS_SIEo8.js.map +0 -1
- package/dist/admin/chunks/de-7MVMrqqI.js.map +0 -1
- package/dist/admin/chunks/de-B81A69_5.mjs.map +0 -1
- package/dist/admin/chunks/dk-BaelzvBE.mjs.map +0 -1
- package/dist/admin/chunks/dk-DwCLGmy9.js.map +0 -1
- package/dist/admin/chunks/en-BhgCBe7M.mjs.map +0 -1
- package/dist/admin/chunks/en-DwQjkHi_.js.map +0 -1
- package/dist/admin/chunks/es-B0wXmvRj.mjs.map +0 -1
- package/dist/admin/chunks/es-BOJOedG5.js.map +0 -1
- package/dist/admin/chunks/fr-BDNWCNs0.js.map +0 -1
- package/dist/admin/chunks/fr-CGYvGUXg.mjs.map +0 -1
- package/dist/admin/chunks/id-CNzbwFjA.mjs.map +0 -1
- package/dist/admin/chunks/id-UqUPykHZ.js.map +0 -1
- package/dist/admin/chunks/index--_o6btSC.js +0 -471
- package/dist/admin/chunks/index--_o6btSC.js.map +0 -1
- package/dist/admin/chunks/index-BBjNJt_G.mjs +0 -448
- package/dist/admin/chunks/index-BBjNJt_G.mjs.map +0 -1
- package/dist/admin/chunks/index-BgAfLcWs.mjs +0 -1516
- package/dist/admin/chunks/index-BgAfLcWs.mjs.map +0 -1
- package/dist/admin/chunks/index-CHTUC0LM.mjs +0 -718
- package/dist/admin/chunks/index-CHTUC0LM.mjs.map +0 -1
- package/dist/admin/chunks/index-CY5JZ38k.mjs +0 -213
- package/dist/admin/chunks/index-CY5JZ38k.mjs.map +0 -1
- package/dist/admin/chunks/index-Cu1VuLS3.js +0 -741
- package/dist/admin/chunks/index-Cu1VuLS3.js.map +0 -1
- package/dist/admin/chunks/index-Cy-tPfRk.mjs.map +0 -1
- package/dist/admin/chunks/index-DD-Z6c1S.js +0 -217
- package/dist/admin/chunks/index-DD-Z6c1S.js.map +0 -1
- package/dist/admin/chunks/index-DFnYIqrB.js.map +0 -1
- package/dist/admin/chunks/index-DvubCYNe.js +0 -1537
- package/dist/admin/chunks/index-DvubCYNe.js.map +0 -1
- package/dist/admin/chunks/it-B2H2foTf.mjs.map +0 -1
- package/dist/admin/chunks/it-D5VuyoLU.js.map +0 -1
- package/dist/admin/chunks/ja-C0z9d7L9.mjs.map +0 -1
- package/dist/admin/chunks/ja-MpqVsCgs.js.map +0 -1
- package/dist/admin/chunks/ko-Bm-grPSc.js.map +0 -1
- package/dist/admin/chunks/ko-CzUgzpeS.mjs.map +0 -1
- package/dist/admin/chunks/ms-CCacxjim.mjs.map +0 -1
- package/dist/admin/chunks/ms-D7eyBD5H.js.map +0 -1
- package/dist/admin/chunks/nl-BIOwAQtI.js.map +0 -1
- package/dist/admin/chunks/nl-DDC3nZW-.mjs.map +0 -1
- package/dist/admin/chunks/pl-D5BeNrg_.js.map +0 -1
- package/dist/admin/chunks/pl-XkS463rN.mjs.map +0 -1
- package/dist/admin/chunks/pt-BR-8cC7z8Km.mjs.map +0 -1
- package/dist/admin/chunks/pt-BR-DxPBzQGx.js.map +0 -1
- package/dist/admin/chunks/pt-DQpEvio8.mjs.map +0 -1
- package/dist/admin/chunks/pt-kkCwzNvH.js.map +0 -1
- package/dist/admin/chunks/ru-BQ0gHmp3.js.map +0 -1
- package/dist/admin/chunks/ru-nzL_7Mhg.mjs.map +0 -1
- package/dist/admin/chunks/sk-Ddxc_tZA.mjs.map +0 -1
- package/dist/admin/chunks/sk-nVwAPdYC.js.map +0 -1
- package/dist/admin/chunks/sv-BDfk2A-F.js.map +0 -1
- package/dist/admin/chunks/sv-By3RYpMG.mjs.map +0 -1
- package/dist/admin/chunks/th-BtTtpHe2.js.map +0 -1
- package/dist/admin/chunks/th-COl50vqb.mjs.map +0 -1
- package/dist/admin/chunks/tr-80SJU6jg.mjs.map +0 -1
- package/dist/admin/chunks/tr-Di-Nf7cT.js.map +0 -1
- package/dist/admin/chunks/uk-DnrIlPwG.mjs.map +0 -1
- package/dist/admin/chunks/uk-r5zXTAS7.js.map +0 -1
- package/dist/admin/chunks/vi-69AF03Iv.mjs.map +0 -1
- package/dist/admin/chunks/vi-D9cCsHsU.js.map +0 -1
- package/dist/admin/chunks/zh-BzSkqxo-.mjs.map +0 -1
- package/dist/admin/chunks/zh-BzWgJEzz.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-CKqQbpsM.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-DmDcSsp7.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.mjs","sources":["../../../server/controllers/user.js"],"sourcesContent":["'use strict';\n\n/**\n * User.js controller\n *\n * @description: A set of functions called \"actions\" for managing `User`.\n */\n\nconst _ = require('lodash');\nconst utils = require('@strapi/utils');\nconst { getService } = require('../utils');\nconst { validateCreateUserBody, validateUpdateUserBody } = require('./validation/user');\n\nconst { ApplicationError, ValidationError, NotFoundError } = utils.errors;\n\nconst sanitizeOutput = async (user, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.output(user, schema, { auth });\n};\n\nconst validateQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.validate.query(query, schema, { auth });\n};\n\nconst sanitizeQuery = async (query, ctx) => {\n const schema = strapi.getModel('plugin::users-permissions.user');\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.query(query, schema, { auth });\n};\n\nmodule.exports = {\n /**\n * Create a/an user record.\n * @return {Object}\n */\n async create(ctx) {\n const advanced = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n await validateCreateUserBody(ctx.request.body);\n\n const { email, username, role } = ctx.request.body;\n\n const userWithSameUsername = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { username } });\n\n if (userWithSameUsername) {\n if (!email) throw new ApplicationError('Username already taken');\n }\n\n if (advanced.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail) {\n throw new ApplicationError('Email already taken');\n }\n }\n\n const user = {\n ...ctx.request.body,\n email: email.toLowerCase(),\n provider: 'local',\n };\n\n if (!role) {\n const defaultRole = await strapi.db\n .query('plugin::users-permissions.role')\n .findOne({ where: { type: advanced.default_role } });\n\n user.role = defaultRole.id;\n }\n\n try {\n const data = await getService('user').add(user);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.created(sanitizedData);\n } catch (error) {\n throw new ApplicationError(error.message);\n }\n },\n\n /**\n * Update a/an user record.\n * @return {Object}\n */\n async update(ctx) {\n const advancedConfigs = await strapi\n .store({ type: 'plugin', name: 'users-permissions', key: 'advanced' })\n .get();\n\n const { id } = ctx.params;\n const { email, username, password } = ctx.request.body;\n\n const user = await getService('user').fetch(id);\n if (!user) {\n throw new NotFoundError(`User not found`);\n }\n\n await validateUpdateUserBody(ctx.request.body);\n\n if (user.provider === 'local' && _.has(ctx.request.body, 'password') && !password) {\n throw new ValidationError('password.notNull');\n }\n\n if (_.has(ctx.request.body, 'username')) {\n const userWithSameUsername = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { username } });\n\n if (userWithSameUsername && _.toString(userWithSameUsername.id) !== _.toString(id)) {\n throw new ApplicationError('Username already taken');\n }\n }\n\n if (_.has(ctx.request.body, 'email') && advancedConfigs.unique_email) {\n const userWithSameEmail = await strapi.db\n .query('plugin::users-permissions.user')\n .findOne({ where: { email: email.toLowerCase() } });\n\n if (userWithSameEmail && _.toString(userWithSameEmail.id) !== _.toString(id)) {\n throw new ApplicationError('Email already taken');\n }\n ctx.request.body.email = ctx.request.body.email.toLowerCase();\n }\n\n const updateData = {\n ...ctx.request.body,\n };\n\n const data = await getService('user').edit(user.id, updateData);\n const sanitizedData = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedData);\n },\n\n /**\n * Retrieve user records.\n * @return {Object|Array}\n */\n async find(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n const users = await getService('user').fetchAll(sanitizedQuery);\n\n ctx.body = await Promise.all(users.map((user) => sanitizeOutput(user, ctx)));\n },\n\n /**\n * Retrieve a user record.\n * @return {Object}\n */\n async findOne(ctx) {\n const { id } = ctx.params;\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n let data = await getService('user').fetch(id, sanitizedQuery);\n\n if (data) {\n data = await sanitizeOutput(data, ctx);\n }\n\n ctx.body = data;\n },\n\n /**\n * Retrieve user count.\n * @return {Number}\n */\n async count(ctx) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n ctx.body = await getService('user').count(sanitizedQuery);\n },\n\n /**\n * Destroy a/an user record.\n * @return {Object}\n */\n async destroy(ctx) {\n const { id } = ctx.params;\n\n const data = await getService('user').remove({ id });\n const sanitizedUser = await sanitizeOutput(data, ctx);\n\n ctx.send(sanitizedUser);\n },\n\n /**\n * Retrieve authenticated user.\n * @return {Object|Array}\n */\n async me(ctx) {\n const authUser = ctx.state.user;\n const { query } = ctx;\n\n if (!authUser) {\n return ctx.unauthorized();\n }\n\n await validateQuery(query, ctx);\n const sanitizedQuery = await sanitizeQuery(query, ctx);\n const user = await getService('user').fetch(authUser.id, sanitizedQuery);\n\n ctx.body = await sanitizeOutput(user, ctx);\n },\n};\n"],"names":["_","require$$0","utils","require$$1","getService","require$$2","validateCreateUserBody","validateUpdateUserBody","require$$3","ApplicationError","ValidationError","NotFoundError","errors","sanitizeOutput","user","ctx","schema","strapi","getModel","auth","state","contentAPI","sanitize","output","validateQuery","query","validate","sanitizeQuery","create","advanced","store","type","name","key","get","request","body","email","username","role","userWithSameUsername","db","findOne","where","unique_email","userWithSameEmail","toLowerCase","provider","defaultRole","default_role","id","data","add","sanitizedData","created","error","message","update","advancedConfigs","params","password","fetch","has","toString","updateData","edit","send","find","sanitizedQuery","users","fetchAll","Promise","all","map","count","destroy","remove","sanitizedUser","me","authUser","unauthorized"],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$1 = require('@strapi/utils');
|
|
4
|
+
|
|
5
|
+
var auth;
|
|
6
|
+
var hasRequiredAuth;
|
|
7
|
+
function requireAuth() {
|
|
8
|
+
if (hasRequiredAuth) return auth;
|
|
9
|
+
hasRequiredAuth = 1;
|
|
10
|
+
const { yup, validateYupSchema } = require$$1;
|
|
11
|
+
const callbackSchema = yup.object({
|
|
12
|
+
identifier: yup.string().required(),
|
|
13
|
+
password: yup.string().required()
|
|
14
|
+
});
|
|
15
|
+
const createRegisterSchema = (config)=>yup.object({
|
|
16
|
+
email: yup.string().email().required(),
|
|
17
|
+
username: yup.string().required(),
|
|
18
|
+
password: yup.string().required().test(function(value) {
|
|
19
|
+
if (!value) return true;
|
|
20
|
+
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
21
|
+
if (!isValid) {
|
|
22
|
+
return this.createError({
|
|
23
|
+
message: 'Password must be less than 73 bytes'
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}).test(async function(value) {
|
|
28
|
+
if (typeof config?.validatePassword === 'function') {
|
|
29
|
+
try {
|
|
30
|
+
const isValid = await config.validatePassword(value);
|
|
31
|
+
if (!isValid) {
|
|
32
|
+
return this.createError({
|
|
33
|
+
message: 'Password validation failed.'
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
} catch (error) {
|
|
37
|
+
return this.createError({
|
|
38
|
+
message: error.message || 'An error occurred.'
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
const sendEmailConfirmationSchema = yup.object({
|
|
46
|
+
email: yup.string().email().required()
|
|
47
|
+
});
|
|
48
|
+
const validateEmailConfirmationSchema = yup.object({
|
|
49
|
+
confirmation: yup.string().required()
|
|
50
|
+
});
|
|
51
|
+
const forgotPasswordSchema = yup.object({
|
|
52
|
+
email: yup.string().email().required()
|
|
53
|
+
}).noUnknown();
|
|
54
|
+
const createResetPasswordSchema = (config)=>yup.object({
|
|
55
|
+
password: yup.string().required().test(function(value) {
|
|
56
|
+
if (!value) return true;
|
|
57
|
+
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
58
|
+
if (!isValid) {
|
|
59
|
+
return this.createError({
|
|
60
|
+
message: 'Password must be less than 73 bytes'
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}).test(async function(value) {
|
|
65
|
+
if (typeof config?.validatePassword === 'function') {
|
|
66
|
+
try {
|
|
67
|
+
const isValid = await config.validatePassword(value);
|
|
68
|
+
if (!isValid) {
|
|
69
|
+
return this.createError({
|
|
70
|
+
message: 'Password validation failed.'
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
} catch (error) {
|
|
74
|
+
return this.createError({
|
|
75
|
+
message: error.message || 'An error occurred.'
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
}),
|
|
81
|
+
passwordConfirmation: yup.string().required().oneOf([
|
|
82
|
+
yup.ref('password')
|
|
83
|
+
], 'Passwords do not match'),
|
|
84
|
+
code: yup.string().required()
|
|
85
|
+
}).noUnknown();
|
|
86
|
+
const createChangePasswordSchema = (config)=>yup.object({
|
|
87
|
+
password: yup.string().required().test(function(value) {
|
|
88
|
+
if (!value) return true;
|
|
89
|
+
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
90
|
+
if (!isValid) {
|
|
91
|
+
return this.createError({
|
|
92
|
+
message: 'Password must be less than 73 bytes'
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
}).test(async function(value) {
|
|
97
|
+
if (typeof config?.validatePassword === 'function') {
|
|
98
|
+
try {
|
|
99
|
+
const isValid = await config.validatePassword(value);
|
|
100
|
+
if (!isValid) {
|
|
101
|
+
return this.createError({
|
|
102
|
+
message: 'Password validation failed.'
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
} catch (error) {
|
|
106
|
+
return this.createError({
|
|
107
|
+
message: error.message || 'An error occurred.'
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return true;
|
|
112
|
+
}),
|
|
113
|
+
passwordConfirmation: yup.string().required().oneOf([
|
|
114
|
+
yup.ref('password')
|
|
115
|
+
], 'Passwords do not match'),
|
|
116
|
+
currentPassword: yup.string().required()
|
|
117
|
+
}).noUnknown();
|
|
118
|
+
auth = {
|
|
119
|
+
validateCallbackBody: validateYupSchema(callbackSchema),
|
|
120
|
+
validateRegisterBody: (payload, config)=>validateYupSchema(createRegisterSchema(config))(payload),
|
|
121
|
+
validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),
|
|
122
|
+
validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),
|
|
123
|
+
validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),
|
|
124
|
+
validateResetPasswordBody: (payload, config)=>validateYupSchema(createResetPasswordSchema(config))(payload),
|
|
125
|
+
validateChangePasswordBody: (payload, config)=>validateYupSchema(createChangePasswordSchema(config))(payload)
|
|
126
|
+
};
|
|
127
|
+
return auth;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
exports.__require = requireAuth;
|
|
131
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../../server/controllers/validation/auth.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst callbackSchema = yup.object({\n identifier: yup.string().required(),\n password: yup.string().required(),\n});\n\nconst createRegisterSchema = (config) =>\n yup.object({\n email: yup.string().email().required(),\n username: yup.string().required(),\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n });\n\nconst sendEmailConfirmationSchema = yup.object({\n email: yup.string().email().required(),\n});\n\nconst validateEmailConfirmationSchema = yup.object({\n confirmation: yup.string().required(),\n});\n\nconst forgotPasswordSchema = yup\n .object({\n email: yup.string().email().required(),\n })\n .noUnknown();\n\nconst createResetPasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n\n code: yup.string().required(),\n })\n .noUnknown();\n\nconst createChangePasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n currentPassword: yup.string().required(),\n })\n .noUnknown();\n\nmodule.exports = {\n validateCallbackBody: validateYupSchema(callbackSchema),\n validateRegisterBody: (payload, config) =>\n validateYupSchema(createRegisterSchema(config))(payload),\n validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),\n validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),\n validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),\n validateResetPasswordBody: (payload, config) =>\n validateYupSchema(createResetPasswordSchema(config))(payload),\n validateChangePasswordBody: (payload, config) =>\n validateYupSchema(createChangePasswordSchema(config))(payload),\n};\n"],"names":["yup","validateYupSchema","require$$0","callbackSchema","object","identifier","string","required","password","createRegisterSchema","config","email","username","test","value","isValid","TextEncoder","encode","length","createError","message","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import require$$1 from '@strapi/utils';
|
|
2
|
+
|
|
3
|
+
var auth;
|
|
4
|
+
var hasRequiredAuth;
|
|
5
|
+
function requireAuth() {
|
|
6
|
+
if (hasRequiredAuth) return auth;
|
|
7
|
+
hasRequiredAuth = 1;
|
|
8
|
+
const { yup, validateYupSchema } = require$$1;
|
|
9
|
+
const callbackSchema = yup.object({
|
|
10
|
+
identifier: yup.string().required(),
|
|
11
|
+
password: yup.string().required()
|
|
12
|
+
});
|
|
13
|
+
const createRegisterSchema = (config)=>yup.object({
|
|
14
|
+
email: yup.string().email().required(),
|
|
15
|
+
username: yup.string().required(),
|
|
16
|
+
password: yup.string().required().test(function(value) {
|
|
17
|
+
if (!value) return true;
|
|
18
|
+
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
19
|
+
if (!isValid) {
|
|
20
|
+
return this.createError({
|
|
21
|
+
message: 'Password must be less than 73 bytes'
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}).test(async function(value) {
|
|
26
|
+
if (typeof config?.validatePassword === 'function') {
|
|
27
|
+
try {
|
|
28
|
+
const isValid = await config.validatePassword(value);
|
|
29
|
+
if (!isValid) {
|
|
30
|
+
return this.createError({
|
|
31
|
+
message: 'Password validation failed.'
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
} catch (error) {
|
|
35
|
+
return this.createError({
|
|
36
|
+
message: error.message || 'An error occurred.'
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
const sendEmailConfirmationSchema = yup.object({
|
|
44
|
+
email: yup.string().email().required()
|
|
45
|
+
});
|
|
46
|
+
const validateEmailConfirmationSchema = yup.object({
|
|
47
|
+
confirmation: yup.string().required()
|
|
48
|
+
});
|
|
49
|
+
const forgotPasswordSchema = yup.object({
|
|
50
|
+
email: yup.string().email().required()
|
|
51
|
+
}).noUnknown();
|
|
52
|
+
const createResetPasswordSchema = (config)=>yup.object({
|
|
53
|
+
password: yup.string().required().test(function(value) {
|
|
54
|
+
if (!value) return true;
|
|
55
|
+
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
56
|
+
if (!isValid) {
|
|
57
|
+
return this.createError({
|
|
58
|
+
message: 'Password must be less than 73 bytes'
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}).test(async function(value) {
|
|
63
|
+
if (typeof config?.validatePassword === 'function') {
|
|
64
|
+
try {
|
|
65
|
+
const isValid = await config.validatePassword(value);
|
|
66
|
+
if (!isValid) {
|
|
67
|
+
return this.createError({
|
|
68
|
+
message: 'Password validation failed.'
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
} catch (error) {
|
|
72
|
+
return this.createError({
|
|
73
|
+
message: error.message || 'An error occurred.'
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
}),
|
|
79
|
+
passwordConfirmation: yup.string().required().oneOf([
|
|
80
|
+
yup.ref('password')
|
|
81
|
+
], 'Passwords do not match'),
|
|
82
|
+
code: yup.string().required()
|
|
83
|
+
}).noUnknown();
|
|
84
|
+
const createChangePasswordSchema = (config)=>yup.object({
|
|
85
|
+
password: yup.string().required().test(function(value) {
|
|
86
|
+
if (!value) return true;
|
|
87
|
+
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
88
|
+
if (!isValid) {
|
|
89
|
+
return this.createError({
|
|
90
|
+
message: 'Password must be less than 73 bytes'
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return true;
|
|
94
|
+
}).test(async function(value) {
|
|
95
|
+
if (typeof config?.validatePassword === 'function') {
|
|
96
|
+
try {
|
|
97
|
+
const isValid = await config.validatePassword(value);
|
|
98
|
+
if (!isValid) {
|
|
99
|
+
return this.createError({
|
|
100
|
+
message: 'Password validation failed.'
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
} catch (error) {
|
|
104
|
+
return this.createError({
|
|
105
|
+
message: error.message || 'An error occurred.'
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}),
|
|
111
|
+
passwordConfirmation: yup.string().required().oneOf([
|
|
112
|
+
yup.ref('password')
|
|
113
|
+
], 'Passwords do not match'),
|
|
114
|
+
currentPassword: yup.string().required()
|
|
115
|
+
}).noUnknown();
|
|
116
|
+
auth = {
|
|
117
|
+
validateCallbackBody: validateYupSchema(callbackSchema),
|
|
118
|
+
validateRegisterBody: (payload, config)=>validateYupSchema(createRegisterSchema(config))(payload),
|
|
119
|
+
validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),
|
|
120
|
+
validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),
|
|
121
|
+
validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),
|
|
122
|
+
validateResetPasswordBody: (payload, config)=>validateYupSchema(createResetPasswordSchema(config))(payload),
|
|
123
|
+
validateChangePasswordBody: (payload, config)=>validateYupSchema(createChangePasswordSchema(config))(payload)
|
|
124
|
+
};
|
|
125
|
+
return auth;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export { requireAuth as __require };
|
|
129
|
+
//# sourceMappingURL=auth.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.mjs","sources":["../../../../server/controllers/validation/auth.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst callbackSchema = yup.object({\n identifier: yup.string().required(),\n password: yup.string().required(),\n});\n\nconst createRegisterSchema = (config) =>\n yup.object({\n email: yup.string().email().required(),\n username: yup.string().required(),\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n });\n\nconst sendEmailConfirmationSchema = yup.object({\n email: yup.string().email().required(),\n});\n\nconst validateEmailConfirmationSchema = yup.object({\n confirmation: yup.string().required(),\n});\n\nconst forgotPasswordSchema = yup\n .object({\n email: yup.string().email().required(),\n })\n .noUnknown();\n\nconst createResetPasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n\n code: yup.string().required(),\n })\n .noUnknown();\n\nconst createChangePasswordSchema = (config) =>\n yup\n .object({\n password: yup\n .string()\n .required()\n .test(function (value) {\n if (!value) return true;\n const isValid = new TextEncoder().encode(value).length <= 72;\n if (!isValid) {\n return this.createError({ message: 'Password must be less than 73 bytes' });\n }\n return true;\n })\n .test(async function (value) {\n if (typeof config?.validatePassword === 'function') {\n try {\n const isValid = await config.validatePassword(value);\n if (!isValid) {\n return this.createError({ message: 'Password validation failed.' });\n }\n } catch (error) {\n return this.createError({ message: error.message || 'An error occurred.' });\n }\n }\n return true;\n }),\n passwordConfirmation: yup\n .string()\n .required()\n .oneOf([yup.ref('password')], 'Passwords do not match'),\n currentPassword: yup.string().required(),\n })\n .noUnknown();\n\nmodule.exports = {\n validateCallbackBody: validateYupSchema(callbackSchema),\n validateRegisterBody: (payload, config) =>\n validateYupSchema(createRegisterSchema(config))(payload),\n validateSendEmailConfirmationBody: validateYupSchema(sendEmailConfirmationSchema),\n validateEmailConfirmationBody: validateYupSchema(validateEmailConfirmationSchema),\n validateForgotPasswordBody: validateYupSchema(forgotPasswordSchema),\n validateResetPasswordBody: (payload, config) =>\n validateYupSchema(createResetPasswordSchema(config))(payload),\n validateChangePasswordBody: (payload, config) =>\n validateYupSchema(createChangePasswordSchema(config))(payload),\n};\n"],"names":["yup","validateYupSchema","require$$0","callbackSchema","object","identifier","string","required","password","createRegisterSchema","config","email","username","test","value","isValid","TextEncoder","encode","length","createError","message","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$0 = require('lodash/fp');
|
|
4
|
+
var require$$1 = require('@strapi/utils');
|
|
5
|
+
|
|
6
|
+
var emailTemplate;
|
|
7
|
+
var hasRequiredEmailTemplate;
|
|
8
|
+
function requireEmailTemplate() {
|
|
9
|
+
if (hasRequiredEmailTemplate) return emailTemplate;
|
|
10
|
+
hasRequiredEmailTemplate = 1;
|
|
11
|
+
const { trim } = require$$0;
|
|
12
|
+
const { template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp } } = require$$1;
|
|
13
|
+
const invalidPatternsRegexes = [
|
|
14
|
+
// Ignore "evaluation" patterns: <% ... %>
|
|
15
|
+
/<%[^=]([\s\S]*?)%>/m,
|
|
16
|
+
// Ignore basic string interpolations
|
|
17
|
+
/\${([^{}]*)}/m
|
|
18
|
+
];
|
|
19
|
+
const authorizedKeys = [
|
|
20
|
+
'URL',
|
|
21
|
+
'ADMIN_URL',
|
|
22
|
+
'SERVER_URL',
|
|
23
|
+
'CODE',
|
|
24
|
+
'USER',
|
|
25
|
+
'USER.email',
|
|
26
|
+
'USER.username',
|
|
27
|
+
'TOKEN'
|
|
28
|
+
];
|
|
29
|
+
const matchAll = (pattern, src)=>{
|
|
30
|
+
const matches = [];
|
|
31
|
+
let match;
|
|
32
|
+
const regexPatternWithGlobal = RegExp(pattern, 'g');
|
|
33
|
+
// eslint-disable-next-line no-cond-assign
|
|
34
|
+
while(match = regexPatternWithGlobal.exec(src)){
|
|
35
|
+
const [, group] = match;
|
|
36
|
+
matches.push(trim(group));
|
|
37
|
+
}
|
|
38
|
+
return matches;
|
|
39
|
+
};
|
|
40
|
+
const isValidEmailTemplate = (template)=>{
|
|
41
|
+
// Check for known invalid patterns
|
|
42
|
+
for (const reg of invalidPatternsRegexes){
|
|
43
|
+
if (reg.test(template)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const interpolation = {
|
|
48
|
+
// Strict interpolation pattern to match only valid groups
|
|
49
|
+
strict: createStrictInterpolationRegExp(authorizedKeys),
|
|
50
|
+
// Weak interpolation pattern to match as many group as possible.
|
|
51
|
+
loose: createLooseInterpolationRegExp()
|
|
52
|
+
};
|
|
53
|
+
// Compute both strict & loose matches
|
|
54
|
+
const strictMatches = matchAll(interpolation.strict, template);
|
|
55
|
+
const looseMatches = matchAll(interpolation.loose, template);
|
|
56
|
+
// If we have more matches with the loose RegExp than with the strict one,
|
|
57
|
+
// then it means that at least one of the interpolation group is invalid
|
|
58
|
+
// Note: In the future, if we wanted to give more details for error formatting
|
|
59
|
+
// purposes, we could return the difference between the two arrays
|
|
60
|
+
if (looseMatches.length > strictMatches.length) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
};
|
|
65
|
+
emailTemplate = {
|
|
66
|
+
isValidEmailTemplate
|
|
67
|
+
};
|
|
68
|
+
return emailTemplate;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
exports.__require = requireEmailTemplate;
|
|
72
|
+
//# sourceMappingURL=email-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-template.js","sources":["../../../../server/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\nconst { trim } = require('lodash/fp');\nconst {\n template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp },\n} = require('@strapi/utils');\n\nconst invalidPatternsRegexes = [\n // Ignore \"evaluation\" patterns: <% ... %>\n /<%[^=]([\\s\\S]*?)%>/m,\n // Ignore basic string interpolations\n /\\${([^{}]*)}/m,\n];\n\nconst authorizedKeys = [\n 'URL',\n 'ADMIN_URL',\n 'SERVER_URL',\n 'CODE',\n 'USER',\n 'USER.email',\n 'USER.username',\n 'TOKEN',\n];\n\nconst matchAll = (pattern, src) => {\n const matches = [];\n let match;\n\n const regexPatternWithGlobal = RegExp(pattern, 'g');\n\n // eslint-disable-next-line no-cond-assign\n while ((match = regexPatternWithGlobal.exec(src))) {\n const [, group] = match;\n\n matches.push(trim(group));\n }\n\n return matches;\n};\n\nconst isValidEmailTemplate = (template) => {\n // Check for known invalid patterns\n for (const reg of invalidPatternsRegexes) {\n if (reg.test(template)) {\n return false;\n }\n }\n\n const interpolation = {\n // Strict interpolation pattern to match only valid groups\n strict: createStrictInterpolationRegExp(authorizedKeys),\n // Weak interpolation pattern to match as many group as possible.\n loose: createLooseInterpolationRegExp(),\n };\n\n // Compute both strict & loose matches\n const strictMatches = matchAll(interpolation.strict, template);\n const looseMatches = matchAll(interpolation.loose, template);\n\n // If we have more matches with the loose RegExp than with the strict one,\n // then it means that at least one of the interpolation group is invalid\n // Note: In the future, if we wanted to give more details for error formatting\n // purposes, we could return the difference between the two arrays\n if (looseMatches.length > strictMatches.length) {\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n isValidEmailTemplate,\n};\n"],"names":["trim","require$$0","template","createLooseInterpolationRegExp","createStrictInterpolationRegExp","require$$1","invalidPatternsRegexes","authorizedKeys","matchAll","pattern","src","matches","match","regexPatternWithGlobal","RegExp","exec","group","push","isValidEmailTemplate","reg","test","interpolation","strict","loose","strictMatches","looseMatches","length","emailTemplate"],"mappings":";;;;;;;;;;IAEA,MAAM,EAAEA,IAAI,EAAE,GAAGC,UAAAA;IACjB,MAAM,EACJC,UAAU,EAAEC,8BAA8B,EAAEC,+BAA+B,EAAE,EAC9E,GAAGC,UAAAA;AAEJ,IAAA,MAAMC,sBAAyB,GAAA;;AAE7B,QAAA,qBAAA;;AAEA,QAAA;AACD,KAAA;AAED,IAAA,MAAMC,cAAiB,GAAA;AACrB,QAAA,KAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,MAAA;AACA,QAAA,MAAA;AACA,QAAA,YAAA;AACA,QAAA,eAAA;AACA,QAAA;AACD,KAAA;IAED,MAAMC,QAAAA,GAAW,CAACC,OAASC,EAAAA,GAAAA,GAAAA;AACzB,QAAA,MAAMC,UAAU,EAAE;QAClB,IAAIC,KAAAA;QAEJ,MAAMC,sBAAAA,GAAyBC,OAAOL,OAAS,EAAA,GAAA,CAAA;;AAG/C,QAAA,MAAQG,KAAQC,GAAAA,sBAAAA,CAAuBE,IAAI,CAACL,GAAO,CAAA,CAAA;YACjD,MAAM,GAAGM,MAAM,GAAGJ,KAAAA;YAElBD,OAAQM,CAAAA,IAAI,CAACjB,IAAKgB,CAAAA,KAAAA,CAAAA,CAAAA;AACnB;QAED,OAAOL,OAAAA;AACT,KAAA;AAEA,IAAA,MAAMO,uBAAuB,CAAChB,QAAAA,GAAAA;;QAE5B,KAAK,MAAMiB,OAAOb,sBAAwB,CAAA;YACxC,IAAIa,GAAAA,CAAIC,IAAI,CAAClB,QAAW,CAAA,EAAA;gBACtB,OAAO,KAAA;AACR;AACF;AAED,QAAA,MAAMmB,aAAgB,GAAA;;AAEpBC,YAAAA,MAAAA,EAAQlB,+BAAgCG,CAAAA,cAAAA,CAAAA;;YAExCgB,KAAOpB,EAAAA,8BAAAA;AACX,SAAA;;AAGE,QAAA,MAAMqB,aAAgBhB,GAAAA,QAAAA,CAASa,aAAcC,CAAAA,MAAM,EAAEpB,QAAAA,CAAAA;AACrD,QAAA,MAAMuB,YAAejB,GAAAA,QAAAA,CAASa,aAAcE,CAAAA,KAAK,EAAErB,QAAAA,CAAAA;;;;;AAMnD,QAAA,IAAIuB,YAAaC,CAAAA,MAAM,GAAGF,aAAAA,CAAcE,MAAM,EAAE;YAC9C,OAAO,KAAA;AACR;QAED,OAAO,IAAA;AACT,KAAA;IAEAC,aAAiB,GAAA;AACfT,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import require$$0 from 'lodash/fp';
|
|
2
|
+
import require$$1 from '@strapi/utils';
|
|
3
|
+
|
|
4
|
+
var emailTemplate;
|
|
5
|
+
var hasRequiredEmailTemplate;
|
|
6
|
+
function requireEmailTemplate() {
|
|
7
|
+
if (hasRequiredEmailTemplate) return emailTemplate;
|
|
8
|
+
hasRequiredEmailTemplate = 1;
|
|
9
|
+
const { trim } = require$$0;
|
|
10
|
+
const { template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp } } = require$$1;
|
|
11
|
+
const invalidPatternsRegexes = [
|
|
12
|
+
// Ignore "evaluation" patterns: <% ... %>
|
|
13
|
+
/<%[^=]([\s\S]*?)%>/m,
|
|
14
|
+
// Ignore basic string interpolations
|
|
15
|
+
/\${([^{}]*)}/m
|
|
16
|
+
];
|
|
17
|
+
const authorizedKeys = [
|
|
18
|
+
'URL',
|
|
19
|
+
'ADMIN_URL',
|
|
20
|
+
'SERVER_URL',
|
|
21
|
+
'CODE',
|
|
22
|
+
'USER',
|
|
23
|
+
'USER.email',
|
|
24
|
+
'USER.username',
|
|
25
|
+
'TOKEN'
|
|
26
|
+
];
|
|
27
|
+
const matchAll = (pattern, src)=>{
|
|
28
|
+
const matches = [];
|
|
29
|
+
let match;
|
|
30
|
+
const regexPatternWithGlobal = RegExp(pattern, 'g');
|
|
31
|
+
// eslint-disable-next-line no-cond-assign
|
|
32
|
+
while(match = regexPatternWithGlobal.exec(src)){
|
|
33
|
+
const [, group] = match;
|
|
34
|
+
matches.push(trim(group));
|
|
35
|
+
}
|
|
36
|
+
return matches;
|
|
37
|
+
};
|
|
38
|
+
const isValidEmailTemplate = (template)=>{
|
|
39
|
+
// Check for known invalid patterns
|
|
40
|
+
for (const reg of invalidPatternsRegexes){
|
|
41
|
+
if (reg.test(template)) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const interpolation = {
|
|
46
|
+
// Strict interpolation pattern to match only valid groups
|
|
47
|
+
strict: createStrictInterpolationRegExp(authorizedKeys),
|
|
48
|
+
// Weak interpolation pattern to match as many group as possible.
|
|
49
|
+
loose: createLooseInterpolationRegExp()
|
|
50
|
+
};
|
|
51
|
+
// Compute both strict & loose matches
|
|
52
|
+
const strictMatches = matchAll(interpolation.strict, template);
|
|
53
|
+
const looseMatches = matchAll(interpolation.loose, template);
|
|
54
|
+
// If we have more matches with the loose RegExp than with the strict one,
|
|
55
|
+
// then it means that at least one of the interpolation group is invalid
|
|
56
|
+
// Note: In the future, if we wanted to give more details for error formatting
|
|
57
|
+
// purposes, we could return the difference between the two arrays
|
|
58
|
+
if (looseMatches.length > strictMatches.length) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
};
|
|
63
|
+
emailTemplate = {
|
|
64
|
+
isValidEmailTemplate
|
|
65
|
+
};
|
|
66
|
+
return emailTemplate;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { requireEmailTemplate as __require };
|
|
70
|
+
//# sourceMappingURL=email-template.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-template.mjs","sources":["../../../../server/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\nconst { trim } = require('lodash/fp');\nconst {\n template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp },\n} = require('@strapi/utils');\n\nconst invalidPatternsRegexes = [\n // Ignore \"evaluation\" patterns: <% ... %>\n /<%[^=]([\\s\\S]*?)%>/m,\n // Ignore basic string interpolations\n /\\${([^{}]*)}/m,\n];\n\nconst authorizedKeys = [\n 'URL',\n 'ADMIN_URL',\n 'SERVER_URL',\n 'CODE',\n 'USER',\n 'USER.email',\n 'USER.username',\n 'TOKEN',\n];\n\nconst matchAll = (pattern, src) => {\n const matches = [];\n let match;\n\n const regexPatternWithGlobal = RegExp(pattern, 'g');\n\n // eslint-disable-next-line no-cond-assign\n while ((match = regexPatternWithGlobal.exec(src))) {\n const [, group] = match;\n\n matches.push(trim(group));\n }\n\n return matches;\n};\n\nconst isValidEmailTemplate = (template) => {\n // Check for known invalid patterns\n for (const reg of invalidPatternsRegexes) {\n if (reg.test(template)) {\n return false;\n }\n }\n\n const interpolation = {\n // Strict interpolation pattern to match only valid groups\n strict: createStrictInterpolationRegExp(authorizedKeys),\n // Weak interpolation pattern to match as many group as possible.\n loose: createLooseInterpolationRegExp(),\n };\n\n // Compute both strict & loose matches\n const strictMatches = matchAll(interpolation.strict, template);\n const looseMatches = matchAll(interpolation.loose, template);\n\n // If we have more matches with the loose RegExp than with the strict one,\n // then it means that at least one of the interpolation group is invalid\n // Note: In the future, if we wanted to give more details for error formatting\n // purposes, we could return the difference between the two arrays\n if (looseMatches.length > strictMatches.length) {\n return false;\n }\n\n return true;\n};\n\nmodule.exports = {\n isValidEmailTemplate,\n};\n"],"names":["trim","require$$0","template","createLooseInterpolationRegExp","createStrictInterpolationRegExp","require$$1","invalidPatternsRegexes","authorizedKeys","matchAll","pattern","src","matches","match","regexPatternWithGlobal","RegExp","exec","group","push","isValidEmailTemplate","reg","test","interpolation","strict","loose","strictMatches","looseMatches","length","emailTemplate"],"mappings":";;;;;;;;IAEA,MAAM,EAAEA,IAAI,EAAE,GAAGC,UAAAA;IACjB,MAAM,EACJC,UAAU,EAAEC,8BAA8B,EAAEC,+BAA+B,EAAE,EAC9E,GAAGC,UAAAA;AAEJ,IAAA,MAAMC,sBAAyB,GAAA;;AAE7B,QAAA,qBAAA;;AAEA,QAAA;AACD,KAAA;AAED,IAAA,MAAMC,cAAiB,GAAA;AACrB,QAAA,KAAA;AACA,QAAA,WAAA;AACA,QAAA,YAAA;AACA,QAAA,MAAA;AACA,QAAA,MAAA;AACA,QAAA,YAAA;AACA,QAAA,eAAA;AACA,QAAA;AACD,KAAA;IAED,MAAMC,QAAAA,GAAW,CAACC,OAASC,EAAAA,GAAAA,GAAAA;AACzB,QAAA,MAAMC,UAAU,EAAE;QAClB,IAAIC,KAAAA;QAEJ,MAAMC,sBAAAA,GAAyBC,OAAOL,OAAS,EAAA,GAAA,CAAA;;AAG/C,QAAA,MAAQG,KAAQC,GAAAA,sBAAAA,CAAuBE,IAAI,CAACL,GAAO,CAAA,CAAA;YACjD,MAAM,GAAGM,MAAM,GAAGJ,KAAAA;YAElBD,OAAQM,CAAAA,IAAI,CAACjB,IAAKgB,CAAAA,KAAAA,CAAAA,CAAAA;AACnB;QAED,OAAOL,OAAAA;AACT,KAAA;AAEA,IAAA,MAAMO,uBAAuB,CAAChB,QAAAA,GAAAA;;QAE5B,KAAK,MAAMiB,OAAOb,sBAAwB,CAAA;YACxC,IAAIa,GAAAA,CAAIC,IAAI,CAAClB,QAAW,CAAA,EAAA;gBACtB,OAAO,KAAA;AACR;AACF;AAED,QAAA,MAAMmB,aAAgB,GAAA;;AAEpBC,YAAAA,MAAAA,EAAQlB,+BAAgCG,CAAAA,cAAAA,CAAAA;;YAExCgB,KAAOpB,EAAAA,8BAAAA;AACX,SAAA;;AAGE,QAAA,MAAMqB,aAAgBhB,GAAAA,QAAAA,CAASa,aAAcC,CAAAA,MAAM,EAAEpB,QAAAA,CAAAA;AACrD,QAAA,MAAMuB,YAAejB,GAAAA,QAAAA,CAASa,aAAcE,CAAAA,KAAK,EAAErB,QAAAA,CAAAA;;;;;AAMnD,QAAA,IAAIuB,YAAaC,CAAAA,MAAM,GAAGF,aAAAA,CAAcE,MAAM,EAAE;YAC9C,OAAO,KAAA;AACR;QAED,OAAO,IAAA;AACT,KAAA;IAEAC,aAAiB,GAAA;AACfT,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$1 = require('@strapi/utils');
|
|
4
|
+
|
|
5
|
+
var user;
|
|
6
|
+
var hasRequiredUser;
|
|
7
|
+
function requireUser() {
|
|
8
|
+
if (hasRequiredUser) return user;
|
|
9
|
+
hasRequiredUser = 1;
|
|
10
|
+
const { yup, validateYupSchema } = require$$1;
|
|
11
|
+
const deleteRoleSchema = yup.object().shape({
|
|
12
|
+
role: yup.strapiID().required()
|
|
13
|
+
});
|
|
14
|
+
const createUserBodySchema = yup.object().shape({
|
|
15
|
+
email: yup.string().email().required(),
|
|
16
|
+
username: yup.string().min(1).required(),
|
|
17
|
+
password: yup.string().min(1).required(),
|
|
18
|
+
role: yup.lazy((value)=>typeof value === 'object' ? yup.object().shape({
|
|
19
|
+
connect: yup.array().of(yup.object().shape({
|
|
20
|
+
id: yup.strapiID().required()
|
|
21
|
+
})).min(1, 'Users must have a role').required()
|
|
22
|
+
}).required() : yup.strapiID().required())
|
|
23
|
+
});
|
|
24
|
+
const updateUserBodySchema = yup.object().shape({
|
|
25
|
+
email: yup.string().email().min(1),
|
|
26
|
+
username: yup.string().min(1),
|
|
27
|
+
password: yup.string().min(1),
|
|
28
|
+
role: yup.lazy((value)=>typeof value === 'object' ? yup.object().shape({
|
|
29
|
+
connect: yup.array().of(yup.object().shape({
|
|
30
|
+
id: yup.strapiID().required()
|
|
31
|
+
})).required(),
|
|
32
|
+
disconnect: yup.array().test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {
|
|
33
|
+
if (value.connect.length === 0 && disconnectValue.length > 0) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}).required()
|
|
38
|
+
}) : yup.strapiID())
|
|
39
|
+
});
|
|
40
|
+
user = {
|
|
41
|
+
validateCreateUserBody: validateYupSchema(createUserBodySchema),
|
|
42
|
+
validateUpdateUserBody: validateYupSchema(updateUserBodySchema),
|
|
43
|
+
validateDeleteRoleBody: validateYupSchema(deleteRoleSchema)
|
|
44
|
+
};
|
|
45
|
+
return user;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
exports.__require = requireUser;
|
|
49
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sources":["../../../../server/controllers/validation/user.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst deleteRoleSchema = yup.object().shape({\n role: yup.strapiID().required(),\n});\n\nconst createUserBodySchema = yup.object().shape({\n email: yup.string().email().required(),\n username: yup.string().min(1).required(),\n password: yup.string().min(1).required(),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup\n .object()\n .shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .min(1, 'Users must have a role')\n .required(),\n })\n .required()\n : yup.strapiID().required()\n ),\n});\n\nconst updateUserBodySchema = yup.object().shape({\n email: yup.string().email().min(1),\n username: yup.string().min(1),\n password: yup.string().min(1),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .required(),\n disconnect: yup\n .array()\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {\n if (value.connect.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n })\n .required(),\n })\n : yup.strapiID()\n ),\n});\n\nmodule.exports = {\n validateCreateUserBody: validateYupSchema(createUserBodySchema),\n validateUpdateUserBody: validateYupSchema(updateUserBodySchema),\n validateDeleteRoleBody: validateYupSchema(deleteRoleSchema),\n};\n"],"names":["yup","validateYupSchema","require$$0","deleteRoleSchema","object","shape","role","strapiID","required","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","id","updateUserBodySchema","disconnect","test","disconnectValue","length","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import require$$1 from '@strapi/utils';
|
|
2
|
+
|
|
3
|
+
var user;
|
|
4
|
+
var hasRequiredUser;
|
|
5
|
+
function requireUser() {
|
|
6
|
+
if (hasRequiredUser) return user;
|
|
7
|
+
hasRequiredUser = 1;
|
|
8
|
+
const { yup, validateYupSchema } = require$$1;
|
|
9
|
+
const deleteRoleSchema = yup.object().shape({
|
|
10
|
+
role: yup.strapiID().required()
|
|
11
|
+
});
|
|
12
|
+
const createUserBodySchema = yup.object().shape({
|
|
13
|
+
email: yup.string().email().required(),
|
|
14
|
+
username: yup.string().min(1).required(),
|
|
15
|
+
password: yup.string().min(1).required(),
|
|
16
|
+
role: yup.lazy((value)=>typeof value === 'object' ? yup.object().shape({
|
|
17
|
+
connect: yup.array().of(yup.object().shape({
|
|
18
|
+
id: yup.strapiID().required()
|
|
19
|
+
})).min(1, 'Users must have a role').required()
|
|
20
|
+
}).required() : yup.strapiID().required())
|
|
21
|
+
});
|
|
22
|
+
const updateUserBodySchema = yup.object().shape({
|
|
23
|
+
email: yup.string().email().min(1),
|
|
24
|
+
username: yup.string().min(1),
|
|
25
|
+
password: yup.string().min(1),
|
|
26
|
+
role: yup.lazy((value)=>typeof value === 'object' ? yup.object().shape({
|
|
27
|
+
connect: yup.array().of(yup.object().shape({
|
|
28
|
+
id: yup.strapiID().required()
|
|
29
|
+
})).required(),
|
|
30
|
+
disconnect: yup.array().test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {
|
|
31
|
+
if (value.connect.length === 0 && disconnectValue.length > 0) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}).required()
|
|
36
|
+
}) : yup.strapiID())
|
|
37
|
+
});
|
|
38
|
+
user = {
|
|
39
|
+
validateCreateUserBody: validateYupSchema(createUserBodySchema),
|
|
40
|
+
validateUpdateUserBody: validateYupSchema(updateUserBodySchema),
|
|
41
|
+
validateDeleteRoleBody: validateYupSchema(deleteRoleSchema)
|
|
42
|
+
};
|
|
43
|
+
return user;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { requireUser as __require };
|
|
47
|
+
//# sourceMappingURL=user.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.mjs","sources":["../../../../server/controllers/validation/user.js"],"sourcesContent":["'use strict';\n\nconst { yup, validateYupSchema } = require('@strapi/utils');\n\nconst deleteRoleSchema = yup.object().shape({\n role: yup.strapiID().required(),\n});\n\nconst createUserBodySchema = yup.object().shape({\n email: yup.string().email().required(),\n username: yup.string().min(1).required(),\n password: yup.string().min(1).required(),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup\n .object()\n .shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .min(1, 'Users must have a role')\n .required(),\n })\n .required()\n : yup.strapiID().required()\n ),\n});\n\nconst updateUserBodySchema = yup.object().shape({\n email: yup.string().email().min(1),\n username: yup.string().min(1),\n password: yup.string().min(1),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n connect: yup\n .array()\n .of(yup.object().shape({ id: yup.strapiID().required() }))\n .required(),\n disconnect: yup\n .array()\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnectValue) {\n if (value.connect.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n })\n .required(),\n })\n : yup.strapiID()\n ),\n});\n\nmodule.exports = {\n validateCreateUserBody: validateYupSchema(createUserBodySchema),\n validateUpdateUserBody: validateYupSchema(updateUserBodySchema),\n validateDeleteRoleBody: validateYupSchema(deleteRoleSchema),\n};\n"],"names":["yup","validateYupSchema","require$$0","deleteRoleSchema","object","shape","role","strapiID","required","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","id","updateUserBodySchema","disconnect","test","disconnectValue","length","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":";;;;;;;AAEA,IAAA,MAAM,EAAEA,GAAG,EAAEC,iBAAiB,EAAE,GAAGC,UAAAA;AAEnC,IAAA,MAAMC,gBAAmBH,GAAAA,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;QAC1CC,IAAMN,EAAAA,GAAAA,CAAIO,QAAQ,EAAA,CAAGC,QAAQ;AAC/B,KAAA,CAAA;AAEA,IAAA,MAAMC,oBAAuBT,GAAAA,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAC9CK,QAAAA,KAAAA,EAAOV,GAAIW,CAAAA,MAAM,EAAGD,CAAAA,KAAK,GAAGF,QAAQ,EAAA;AACpCI,QAAAA,QAAAA,EAAUZ,IAAIW,MAAM,EAAA,CAAGE,GAAG,CAAC,GAAGL,QAAQ,EAAA;AACtCM,QAAAA,QAAAA,EAAUd,IAAIW,MAAM,EAAA,CAAGE,GAAG,CAAC,GAAGL,QAAQ,EAAA;AACtCF,QAAAA,IAAAA,EAAMN,GAAIe,CAAAA,IAAI,CAAC,CAACC,KACd,GAAA,OAAOA,KAAU,KAAA,QAAA,GACbhB,GACGI,CAAAA,MAAM,EACNC,CAAAA,KAAK,CAAC;gBACLY,OAASjB,EAAAA,GAAAA,CACNkB,KAAK,EACLC,CAAAA,EAAE,CAACnB,GAAII,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;oBAAEe,EAAIpB,EAAAA,GAAAA,CAAIO,QAAQ,EAAA,CAAGC,QAAQ;AAAI,iBAAA,CAAA,CAAA,CACvDK,GAAG,CAAC,CAAG,EAAA,wBAAA,CAAA,CACPL,QAAQ;AACvB,aAAA,CAAA,CACWA,QAAQ,EAAA,GACXR,GAAIO,CAAAA,QAAQ,GAAGC,QAAQ,EAAA;AAE/B,KAAA,CAAA;AAEA,IAAA,MAAMa,oBAAuBrB,GAAAA,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;AAC9CK,QAAAA,KAAAA,EAAOV,IAAIW,MAAM,EAAA,CAAGD,KAAK,EAAA,CAAGG,GAAG,CAAC,CAAA,CAAA;AAChCD,QAAAA,QAAAA,EAAUZ,GAAIW,CAAAA,MAAM,EAAGE,CAAAA,GAAG,CAAC,CAAA,CAAA;AAC3BC,QAAAA,QAAAA,EAAUd,GAAIW,CAAAA,MAAM,EAAGE,CAAAA,GAAG,CAAC,CAAA,CAAA;AAC3BP,QAAAA,IAAAA,EAAMN,GAAIe,CAAAA,IAAI,CAAC,CAACC,KACd,GAAA,OAAOA,KAAU,KAAA,QAAA,GACbhB,GAAII,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;gBACjBY,OAASjB,EAAAA,GAAAA,CACNkB,KAAK,EACLC,CAAAA,EAAE,CAACnB,GAAII,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;oBAAEe,EAAIpB,EAAAA,GAAAA,CAAIO,QAAQ,EAAA,CAAGC,QAAQ;AAAI,iBAAA,CAAA,CAAA,CACvDA,QAAQ,EAAA;gBACXc,UAAYtB,EAAAA,GAAAA,CACTkB,KAAK,EACLK,CAAAA,IAAI,CAAC,iBAAmB,EAAA,oBAAA,EAAsB,SAASA,IAAAA,CAAKC,eAAe,EAAA;oBAC1E,IAAIR,KAAAA,CAAMC,OAAO,CAACQ,MAAM,KAAK,CAAKD,IAAAA,eAAAA,CAAgBC,MAAM,GAAG,CAAG,EAAA;wBAC5D,OAAO,KAAA;AACR;oBAED,OAAO,IAAA;AACrB,iBAAA,CAAA,CACajB,QAAQ;AACrB,aAAA,CAAA,GACQR,IAAIO,QAAQ,EAAA;AAEpB,KAAA,CAAA;IAEAmB,IAAiB,GAAA;AACfC,QAAAA,sBAAAA,EAAwB1B,iBAAkBQ,CAAAA,oBAAAA,CAAAA;AAC1CmB,QAAAA,sBAAAA,EAAwB3B,iBAAkBoB,CAAAA,oBAAAA,CAAAA;AAC1CQ,QAAAA,sBAAAA,EAAwB5B,iBAAkBE,CAAAA,gBAAAA;AAC5C,KAAA;;;;;;"}
|