@strapi/plugin-users-permissions 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282 → 0.0.0-experimental.63624e21eb5b0713345a0cf2f68f1c40eab427bc
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/.eslintrc.cjs +2 -0
- package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +3 -1
- package/admin/src/pages/Roles/pages/EditPage.jsx +1 -1
- package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
- package/admin/src/translations/en.json +1 -0
- package/admin/src/translations/es.json +1 -1
- package/admin/src/translations/ko.json +2 -1
- package/admin/src/translations/sv.json +1 -1
- package/admin/src/translations/uk.json +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
- package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs +1 -1
- package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
- package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +1 -1
- package/dist/admin/translations/es.json.mjs +1 -1
- package/dist/admin/translations/ko.json.js +2 -1
- package/dist/admin/translations/ko.json.js.map +1 -1
- package/dist/admin/translations/ko.json.mjs +2 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -1
- package/dist/admin/translations/sv.json.js +1 -1
- package/dist/admin/translations/sv.json.mjs +1 -1
- package/dist/admin/translations/uk.json.js +1 -1
- package/dist/admin/translations/uk.json.mjs +1 -1
- package/dist/server/_virtual/_node_crypto.js +10 -0
- package/dist/server/_virtual/_node_crypto.js.map +1 -0
- package/dist/server/_virtual/_node_crypto.mjs +7 -0
- package/dist/server/_virtual/_node_crypto.mjs.map +1 -0
- package/dist/server/_virtual/_node_url.js +10 -0
- package/dist/server/_virtual/_node_url.js.map +1 -0
- package/dist/server/_virtual/_node_url.mjs +7 -0
- package/dist/server/_virtual/_node_url.mjs.map +1 -0
- package/dist/server/bootstrap/index.js.map +1 -1
- package/dist/server/bootstrap/index.mjs.map +1 -1
- package/dist/server/bootstrap/users-permissions-actions.js.map +1 -1
- package/dist/server/bootstrap/users-permissions-actions.mjs.map +1 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/content-types/index.js.map +1 -1
- package/dist/server/content-types/index.mjs.map +1 -1
- package/dist/server/content-types/permission/index.js.map +1 -1
- package/dist/server/content-types/permission/index.mjs.map +1 -1
- package/dist/server/content-types/role/index.js.map +1 -1
- package/dist/server/content-types/role/index.mjs.map +1 -1
- package/dist/server/content-types/user/index.js.map +1 -1
- package/dist/server/content-types/user/index.mjs.map +1 -1
- package/dist/server/content-types/user/schema-config.js.map +1 -1
- package/dist/server/content-types/user/schema-config.mjs.map +1 -1
- package/dist/server/controllers/auth.js +38 -30
- package/dist/server/controllers/auth.js.map +1 -1
- package/dist/server/controllers/auth.mjs +38 -28
- package/dist/server/controllers/auth.mjs.map +1 -1
- package/dist/server/controllers/content-manager-user.js.map +1 -1
- package/dist/server/controllers/content-manager-user.mjs.map +1 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/permissions.js.map +1 -1
- package/dist/server/controllers/permissions.mjs.map +1 -1
- package/dist/server/controllers/role.js.map +1 -1
- package/dist/server/controllers/role.mjs.map +1 -1
- package/dist/server/controllers/settings.js.map +1 -1
- package/dist/server/controllers/settings.mjs.map +1 -1
- package/dist/server/controllers/user.js.map +1 -1
- package/dist/server/controllers/user.mjs.map +1 -1
- package/dist/server/controllers/validation/auth.js +6 -6
- package/dist/server/controllers/validation/auth.js.map +1 -1
- package/dist/server/controllers/validation/auth.mjs +6 -6
- package/dist/server/controllers/validation/auth.mjs.map +1 -1
- package/dist/server/controllers/validation/email-template.js +1 -4
- package/dist/server/controllers/validation/email-template.js.map +1 -1
- package/dist/server/controllers/validation/email-template.mjs +1 -3
- package/dist/server/controllers/validation/email-template.mjs.map +1 -1
- package/dist/server/controllers/validation/user.js.map +1 -1
- package/dist/server/controllers/validation/user.mjs.map +1 -1
- package/dist/server/graphql/index.js.map +1 -1
- package/dist/server/graphql/index.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.js +7 -4
- package/dist/server/graphql/mutations/auth/change-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/change-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/change-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.js +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.js.map +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs +1 -1
- package/dist/server/graphql/mutations/auth/email-confirmation.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.js +7 -4
- package/dist/server/graphql/mutations/auth/forgot-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/forgot-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/forgot-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/login.js +10 -7
- package/dist/server/graphql/mutations/auth/login.js.map +1 -1
- package/dist/server/graphql/mutations/auth/login.mjs +10 -7
- package/dist/server/graphql/mutations/auth/login.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/rate-limit.js +63 -0
- package/dist/server/graphql/mutations/auth/rate-limit.js.map +1 -0
- package/dist/server/graphql/mutations/auth/rate-limit.mjs +61 -0
- package/dist/server/graphql/mutations/auth/rate-limit.mjs.map +1 -0
- package/dist/server/graphql/mutations/auth/register.js +7 -4
- package/dist/server/graphql/mutations/auth/register.js.map +1 -1
- package/dist/server/graphql/mutations/auth/register.mjs +7 -4
- package/dist/server/graphql/mutations/auth/register.mjs.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.js +7 -4
- package/dist/server/graphql/mutations/auth/reset-password.js.map +1 -1
- package/dist/server/graphql/mutations/auth/reset-password.mjs +7 -4
- package/dist/server/graphql/mutations/auth/reset-password.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.js +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.mjs +1 -1
- package/dist/server/graphql/mutations/crud/role/create-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/delete-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/delete-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/role/update-role.js.map +1 -1
- package/dist/server/graphql/mutations/crud/role/update-role.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.js +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.mjs +1 -1
- package/dist/server/graphql/mutations/crud/user/create-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/delete-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/delete-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.js +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.js.map +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.mjs +1 -1
- package/dist/server/graphql/mutations/crud/user/update-user.mjs.map +1 -1
- package/dist/server/graphql/mutations/index.js.map +1 -1
- package/dist/server/graphql/mutations/index.mjs.map +1 -1
- package/dist/server/graphql/queries/index.js.map +1 -1
- package/dist/server/graphql/queries/index.mjs.map +1 -1
- package/dist/server/graphql/queries/me.js.map +1 -1
- package/dist/server/graphql/queries/me.mjs.map +1 -1
- package/dist/server/graphql/resolvers-configs.js.map +1 -1
- package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
- package/dist/server/graphql/types/create-role-payload.js.map +1 -1
- package/dist/server/graphql/types/create-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/delete-role-payload.js.map +1 -1
- package/dist/server/graphql/types/delete-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/index.js.map +1 -1
- package/dist/server/graphql/types/index.mjs.map +1 -1
- package/dist/server/graphql/types/login-input.js.map +1 -1
- package/dist/server/graphql/types/login-input.mjs.map +1 -1
- package/dist/server/graphql/types/login-payload.js.map +1 -1
- package/dist/server/graphql/types/login-payload.mjs.map +1 -1
- package/dist/server/graphql/types/me-role.js.map +1 -1
- package/dist/server/graphql/types/me-role.mjs.map +1 -1
- package/dist/server/graphql/types/me.js.map +1 -1
- package/dist/server/graphql/types/me.mjs.map +1 -1
- package/dist/server/graphql/types/password-payload.js.map +1 -1
- package/dist/server/graphql/types/password-payload.mjs.map +1 -1
- package/dist/server/graphql/types/register-input.js.map +1 -1
- package/dist/server/graphql/types/register-input.mjs.map +1 -1
- package/dist/server/graphql/types/update-role-payload.js.map +1 -1
- package/dist/server/graphql/types/update-role-payload.mjs.map +1 -1
- package/dist/server/graphql/types/user-input.js.map +1 -1
- package/dist/server/graphql/types/user-input.mjs.map +1 -1
- package/dist/server/graphql/utils.js +4 -4
- package/dist/server/graphql/utils.js.map +1 -1
- package/dist/server/graphql/utils.mjs +4 -4
- package/dist/server/graphql/utils.mjs.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +3 -3
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/index2.js +8 -8
- package/dist/server/index2.js.map +1 -1
- package/dist/server/index2.mjs +8 -8
- package/dist/server/index2.mjs.map +1 -1
- package/dist/server/middlewares/index.js.map +1 -1
- package/dist/server/middlewares/index.mjs.map +1 -1
- package/dist/server/middlewares/rateLimit.js +5 -5
- package/dist/server/middlewares/rateLimit.js.map +1 -1
- package/dist/server/middlewares/rateLimit.mjs +5 -5
- package/dist/server/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin/index.js.map +1 -1
- package/dist/server/routes/admin/index.mjs.map +1 -1
- package/dist/server/routes/admin/permissions.js.map +1 -1
- package/dist/server/routes/admin/permissions.mjs.map +1 -1
- package/dist/server/routes/admin/role.js.map +1 -1
- package/dist/server/routes/admin/role.mjs.map +1 -1
- package/dist/server/routes/admin/settings.js.map +1 -1
- package/dist/server/routes/admin/settings.mjs.map +1 -1
- package/dist/server/routes/content-api/auth.js.map +1 -1
- package/dist/server/routes/content-api/auth.mjs.map +1 -1
- package/dist/server/routes/content-api/index.js.map +1 -1
- package/dist/server/routes/content-api/index.mjs.map +1 -1
- package/dist/server/routes/content-api/permissions.js.map +1 -1
- package/dist/server/routes/content-api/permissions.mjs.map +1 -1
- package/dist/server/routes/content-api/role.js.map +1 -1
- package/dist/server/routes/content-api/role.mjs.map +1 -1
- package/dist/server/routes/content-api/user.js.map +1 -1
- package/dist/server/routes/content-api/user.mjs.map +1 -1
- package/dist/server/routes/content-api/validation.js.map +1 -1
- package/dist/server/routes/content-api/validation.mjs.map +1 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/index.mjs.map +1 -1
- package/dist/server/services/constants.js.map +1 -1
- package/dist/server/services/constants.mjs.map +1 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/jwt.js.map +1 -1
- package/dist/server/services/jwt.mjs.map +1 -1
- package/dist/server/services/permission.js.map +1 -1
- package/dist/server/services/permission.mjs.map +1 -1
- package/dist/server/services/providers-registry.js +188 -248
- package/dist/server/services/providers-registry.js.map +1 -1
- package/dist/server/services/providers-registry.mjs +188 -245
- package/dist/server/services/providers-registry.mjs.map +1 -1
- package/dist/server/services/providers.js +15 -11
- package/dist/server/services/providers.js.map +1 -1
- package/dist/server/services/providers.mjs +14 -10
- package/dist/server/services/providers.mjs.map +1 -1
- package/dist/server/services/role.js +2 -2
- package/dist/server/services/role.js.map +1 -1
- package/dist/server/services/role.mjs +2 -2
- package/dist/server/services/role.mjs.map +1 -1
- package/dist/server/services/user.js +14 -14
- package/dist/server/services/user.js.map +1 -1
- package/dist/server/services/user.mjs +13 -13
- package/dist/server/services/user.mjs.map +1 -1
- package/dist/server/services/users-permissions.js +17 -20
- package/dist/server/services/users-permissions.js.map +1 -1
- package/dist/server/services/users-permissions.mjs +16 -18
- package/dist/server/services/users-permissions.mjs.map +1 -1
- package/dist/server/strategies/users-permissions.js +9 -8
- package/dist/server/strategies/users-permissions.js.map +1 -1
- package/dist/server/strategies/users-permissions.mjs +9 -8
- package/dist/server/strategies/users-permissions.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/server/utils/oauth-connect/index.js +241 -0
- package/dist/server/utils/oauth-connect/index.js.map +1 -0
- package/dist/server/utils/oauth-connect/index.mjs +235 -0
- package/dist/server/utils/oauth-connect/index.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/oauth1.js +138 -0
- package/dist/server/utils/oauth-connect/oauth1.js.map +1 -0
- package/dist/server/utils/oauth-connect/oauth1.mjs +136 -0
- package/dist/server/utils/oauth-connect/oauth1.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/oauth2.js +117 -0
- package/dist/server/utils/oauth-connect/oauth2.js.map +1 -0
- package/dist/server/utils/oauth-connect/oauth2.mjs +115 -0
- package/dist/server/utils/oauth-connect/oauth2.mjs.map +1 -0
- package/dist/server/utils/oauth-connect/providers.js +109 -0
- package/dist/server/utils/oauth-connect/providers.js.map +1 -0
- package/dist/server/utils/oauth-connect/providers.mjs +107 -0
- package/dist/server/utils/oauth-connect/providers.mjs.map +1 -0
- package/dist/server/utils/provider-http.js +52 -0
- package/dist/server/utils/provider-http.js.map +1 -0
- package/dist/server/utils/provider-http.mjs +50 -0
- package/dist/server/utils/provider-http.mjs.map +1 -0
- package/dist/server/utils/refresh-cookie-options.js.map +1 -1
- package/dist/server/utils/refresh-cookie-options.mjs.map +1 -1
- package/dist/server/utils/sanitize/index.js.map +1 -1
- package/dist/server/utils/sanitize/index.mjs.map +1 -1
- package/dist/server/utils/sanitize/sanitizers.js +1 -1
- package/dist/server/utils/sanitize/sanitizers.js.map +1 -1
- package/dist/server/utils/sanitize/sanitizers.mjs +1 -1
- package/dist/server/utils/sanitize/sanitizers.mjs.map +1 -1
- package/dist/server/utils/sanitize/visitors/index.js.map +1 -1
- package/dist/server/utils/sanitize/visitors/index.mjs.map +1 -1
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.js.map +1 -1
- package/dist/server/utils/sanitize/visitors/remove-user-relation-from-role-entities.mjs.map +1 -1
- package/dist/server/utils/trim-grant-session-response.js +67 -0
- package/dist/server/utils/trim-grant-session-response.js.map +1 -0
- package/dist/server/utils/trim-grant-session-response.mjs +65 -0
- package/dist/server/utils/trim-grant-session-response.mjs.map +1 -0
- package/dist/server/utils/verify-jwt-with-jwks.js +60 -0
- package/dist/server/utils/verify-jwt-with-jwks.js.map +1 -0
- package/dist/server/utils/verify-jwt-with-jwks.mjs +54 -0
- package/dist/server/utils/verify-jwt-with-jwks.mjs.map +1 -0
- package/jsconfig.json +7 -0
- package/package.json +28 -18
- package/rollup.config.mjs +2 -2
- package/server/{controllers → src/controllers}/auth.js +36 -29
- package/server/{controllers → src/controllers}/validation/auth.js +6 -6
- package/server/{controllers → src/controllers}/validation/email-template.js +1 -2
- package/server/{graphql → src/graphql}/mutations/auth/change-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/email-confirmation.js +1 -1
- package/server/{graphql → src/graphql}/mutations/auth/forgot-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/login.js +11 -7
- package/server/src/graphql/mutations/auth/rate-limit.js +62 -0
- package/server/{graphql → src/graphql}/mutations/auth/register.js +6 -6
- package/server/{graphql → src/graphql}/mutations/auth/reset-password.js +6 -6
- package/server/{graphql → src/graphql}/mutations/crud/role/create-role.js +1 -1
- package/server/{graphql → src/graphql}/mutations/crud/user/create-user.js +1 -1
- package/server/{graphql → src/graphql}/mutations/crud/user/update-user.js +1 -1
- package/server/{graphql → src/graphql}/utils.js +3 -3
- package/server/{middlewares → src/middlewares}/rateLimit.js +4 -4
- package/server/src/services/providers-registry.js +487 -0
- package/server/{services → src/services}/providers.js +9 -7
- package/server/{services → src/services}/role.js +2 -2
- package/server/{services → src/services}/user.js +16 -6
- package/server/{services → src/services}/users-permissions.js +14 -16
- package/server/{strategies → src/strategies}/users-permissions.js +14 -10
- package/server/src/utils/oauth-connect/index.js +262 -0
- package/server/src/utils/oauth-connect/oauth1.js +169 -0
- package/server/src/utils/oauth-connect/oauth2.js +123 -0
- package/server/src/utils/oauth-connect/providers.js +100 -0
- package/server/src/utils/provider-http.js +49 -0
- package/server/{utils → src/utils}/sanitize/sanitizers.js +1 -1
- package/server/src/utils/trim-grant-session-response.js +70 -0
- package/server/src/utils/verify-jwt-with-jwks.js +43 -0
- package/types/strapi-server.d.ts +65 -0
- package/server/services/providers-registry.js +0 -567
- package/server/utils/index.d.ts +0 -23
- /package/server/{bootstrap → src/bootstrap}/index.js +0 -0
- /package/server/{bootstrap → src/bootstrap}/users-permissions-actions.js +0 -0
- /package/server/{config.js → src/config.js} +0 -0
- /package/server/{content-types → src/content-types}/index.js +0 -0
- /package/server/{content-types → src/content-types}/permission/index.js +0 -0
- /package/server/{content-types → src/content-types}/role/index.js +0 -0
- /package/server/{content-types → src/content-types}/user/index.js +0 -0
- /package/server/{content-types → src/content-types}/user/schema-config.js +0 -0
- /package/server/{controllers → src/controllers}/content-manager-user.js +0 -0
- /package/server/{controllers → src/controllers}/index.js +0 -0
- /package/server/{controllers → src/controllers}/permissions.js +0 -0
- /package/server/{controllers → src/controllers}/role.js +0 -0
- /package/server/{controllers → src/controllers}/settings.js +0 -0
- /package/server/{controllers → src/controllers}/user.js +0 -0
- /package/server/{controllers → src/controllers}/validation/user.js +0 -0
- /package/server/{graphql → src/graphql}/index.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/role/delete-role.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/role/update-role.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/crud/user/delete-user.js +0 -0
- /package/server/{graphql → src/graphql}/mutations/index.js +0 -0
- /package/server/{graphql → src/graphql}/queries/index.js +0 -0
- /package/server/{graphql → src/graphql}/queries/me.js +0 -0
- /package/server/{graphql → src/graphql}/resolvers-configs.js +0 -0
- /package/server/{graphql → src/graphql}/types/create-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/delete-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/index.js +0 -0
- /package/server/{graphql → src/graphql}/types/login-input.js +0 -0
- /package/server/{graphql → src/graphql}/types/login-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/me-role.js +0 -0
- /package/server/{graphql → src/graphql}/types/me.js +0 -0
- /package/server/{graphql → src/graphql}/types/password-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/register-input.js +0 -0
- /package/server/{graphql → src/graphql}/types/update-role-payload.js +0 -0
- /package/server/{graphql → src/graphql}/types/user-input.js +0 -0
- /package/server/{index.js → src/index.js} +0 -0
- /package/server/{middlewares → src/middlewares}/index.js +0 -0
- /package/server/{register.js → src/register.js} +0 -0
- /package/server/{routes → src/routes}/admin/index.js +0 -0
- /package/server/{routes → src/routes}/admin/permissions.js +0 -0
- /package/server/{routes → src/routes}/admin/role.js +0 -0
- /package/server/{routes → src/routes}/admin/settings.js +0 -0
- /package/server/{routes → src/routes}/content-api/auth.js +0 -0
- /package/server/{routes → src/routes}/content-api/index.js +0 -0
- /package/server/{routes → src/routes}/content-api/permissions.js +0 -0
- /package/server/{routes → src/routes}/content-api/role.js +0 -0
- /package/server/{routes → src/routes}/content-api/user.js +0 -0
- /package/server/{routes → src/routes}/content-api/validation.js +0 -0
- /package/server/{routes → src/routes}/index.js +0 -0
- /package/server/{services → src/services}/constants.js +0 -0
- /package/server/{services → src/services}/index.js +0 -0
- /package/server/{services → src/services}/jwt.js +0 -0
- /package/server/{services → src/services}/permission.js +0 -0
- /package/server/{utils → src/utils}/index.js +0 -0
- /package/server/{utils → src/utils}/refresh-cookie-options.js +0 -0
- /package/server/{utils → src/utils}/sanitize/index.js +0 -0
- /package/server/{utils → src/utils}/sanitize/visitors/index.js +0 -0
- /package/server/{utils → src/utils}/sanitize/visitors/remove-user-relation-from-role-entities.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","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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"}
|
|
1
|
+
{"version":3,"file":"user.js","sources":["../../../server/src/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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"}
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"user.mjs","sources":["../../../server/src/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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"}
|
|
@@ -19,7 +19,7 @@ function requireAuth() {
|
|
|
19
19
|
const createRegisterSchema = (config)=>yup.object({
|
|
20
20
|
email: yup.string().email().required(),
|
|
21
21
|
username: yup.string().required(),
|
|
22
|
-
password: yup.string().required().test(function(value) {
|
|
22
|
+
password: yup.string().required().test(function validateRegisterPasswordMaxLength(value) {
|
|
23
23
|
if (!value) return true;
|
|
24
24
|
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
25
25
|
if (!isValid) {
|
|
@@ -28,7 +28,7 @@ function requireAuth() {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
return true;
|
|
31
|
-
}).test(async function(value) {
|
|
31
|
+
}).test(async function validateRegisterPassword(value) {
|
|
32
32
|
if (typeof config?.validatePassword === 'function') {
|
|
33
33
|
try {
|
|
34
34
|
const isValid = await config.validatePassword(value);
|
|
@@ -56,7 +56,7 @@ function requireAuth() {
|
|
|
56
56
|
email: yup.string().email().required()
|
|
57
57
|
}).noUnknown();
|
|
58
58
|
const createResetPasswordSchema = (config)=>yup.object({
|
|
59
|
-
password: yup.string().required().test(function(value) {
|
|
59
|
+
password: yup.string().required().test(function validateResetPasswordMaxLength(value) {
|
|
60
60
|
if (!value) return true;
|
|
61
61
|
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
62
62
|
if (!isValid) {
|
|
@@ -65,7 +65,7 @@ function requireAuth() {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
return true;
|
|
68
|
-
}).test(async function(value) {
|
|
68
|
+
}).test(async function validateResetPassword(value) {
|
|
69
69
|
if (typeof config?.validatePassword === 'function') {
|
|
70
70
|
try {
|
|
71
71
|
const isValid = await config.validatePassword(value);
|
|
@@ -88,7 +88,7 @@ function requireAuth() {
|
|
|
88
88
|
code: yup.string().required()
|
|
89
89
|
}).noUnknown();
|
|
90
90
|
const createChangePasswordSchema = (config)=>yup.object({
|
|
91
|
-
password: yup.string().required().test(function(value) {
|
|
91
|
+
password: yup.string().required().test(function validateChangePasswordMaxLength(value) {
|
|
92
92
|
if (!value) return true;
|
|
93
93
|
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
94
94
|
if (!isValid) {
|
|
@@ -97,7 +97,7 @@ function requireAuth() {
|
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
return true;
|
|
100
|
-
}).test(async function(value) {
|
|
100
|
+
}).test(async function validateChangePassword(value) {
|
|
101
101
|
if (typeof config?.validatePassword === 'function') {
|
|
102
102
|
try {
|
|
103
103
|
const isValid = await config.validatePassword(value);
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../../../server/src/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 validateRegisterPasswordMaxLength(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 validateRegisterPassword(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 validateResetPasswordMaxLength(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 validateResetPassword(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 validateChangePasswordMaxLength(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 validateChangePassword(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","validateRegisterPasswordMaxLength","value","isValid","TextEncoder","encode","length","createError","message","validateRegisterPassword","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","validateResetPasswordMaxLength","validateResetPassword","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","validateChangePasswordMaxLength","validateChangePassword","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ function requireAuth() {
|
|
|
13
13
|
const createRegisterSchema = (config)=>yup.object({
|
|
14
14
|
email: yup.string().email().required(),
|
|
15
15
|
username: yup.string().required(),
|
|
16
|
-
password: yup.string().required().test(function(value) {
|
|
16
|
+
password: yup.string().required().test(function validateRegisterPasswordMaxLength(value) {
|
|
17
17
|
if (!value) return true;
|
|
18
18
|
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
19
19
|
if (!isValid) {
|
|
@@ -22,7 +22,7 @@ function requireAuth() {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
return true;
|
|
25
|
-
}).test(async function(value) {
|
|
25
|
+
}).test(async function validateRegisterPassword(value) {
|
|
26
26
|
if (typeof config?.validatePassword === 'function') {
|
|
27
27
|
try {
|
|
28
28
|
const isValid = await config.validatePassword(value);
|
|
@@ -50,7 +50,7 @@ function requireAuth() {
|
|
|
50
50
|
email: yup.string().email().required()
|
|
51
51
|
}).noUnknown();
|
|
52
52
|
const createResetPasswordSchema = (config)=>yup.object({
|
|
53
|
-
password: yup.string().required().test(function(value) {
|
|
53
|
+
password: yup.string().required().test(function validateResetPasswordMaxLength(value) {
|
|
54
54
|
if (!value) return true;
|
|
55
55
|
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
56
56
|
if (!isValid) {
|
|
@@ -59,7 +59,7 @@ function requireAuth() {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
return true;
|
|
62
|
-
}).test(async function(value) {
|
|
62
|
+
}).test(async function validateResetPassword(value) {
|
|
63
63
|
if (typeof config?.validatePassword === 'function') {
|
|
64
64
|
try {
|
|
65
65
|
const isValid = await config.validatePassword(value);
|
|
@@ -82,7 +82,7 @@ function requireAuth() {
|
|
|
82
82
|
code: yup.string().required()
|
|
83
83
|
}).noUnknown();
|
|
84
84
|
const createChangePasswordSchema = (config)=>yup.object({
|
|
85
|
-
password: yup.string().required().test(function(value) {
|
|
85
|
+
password: yup.string().required().test(function validateChangePasswordMaxLength(value) {
|
|
86
86
|
if (!value) return true;
|
|
87
87
|
const isValid = new TextEncoder().encode(value).length <= 72;
|
|
88
88
|
if (!isValid) {
|
|
@@ -91,7 +91,7 @@ function requireAuth() {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
return true;
|
|
94
|
-
}).test(async function(value) {
|
|
94
|
+
}).test(async function validateChangePassword(value) {
|
|
95
95
|
if (typeof config?.validatePassword === 'function') {
|
|
96
96
|
try {
|
|
97
97
|
const isValid = await config.validatePassword(value);
|
|
@@ -1 +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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"}
|
|
1
|
+
{"version":3,"file":"auth.mjs","sources":["../../../../server/src/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 validateRegisterPasswordMaxLength(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 validateRegisterPassword(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 validateResetPasswordMaxLength(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 validateResetPassword(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 validateChangePasswordMaxLength(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 validateChangePassword(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","validateRegisterPasswordMaxLength","value","isValid","TextEncoder","encode","length","createError","message","validateRegisterPassword","validatePassword","error","sendEmailConfirmationSchema","validateEmailConfirmationSchema","confirmation","forgotPasswordSchema","noUnknown","createResetPasswordSchema","validateResetPasswordMaxLength","validateResetPassword","passwordConfirmation","oneOf","ref","code","createChangePasswordSchema","validateChangePasswordMaxLength","validateChangePassword","currentPassword","auth","validateCallbackBody","validateRegisterBody","payload","validateSendEmailConfirmationBody","validateEmailConfirmationBody","validateForgotPasswordBody","validateResetPasswordBody","validateChangePasswordBody"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var require$$0 = require('lodash/fp');
|
|
4
3
|
var require$$1 = require('@strapi/utils');
|
|
5
4
|
|
|
6
5
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
6
|
|
|
8
|
-
var require$$0__default = /*#__PURE__*/_interopDefault(require$$0);
|
|
9
7
|
var require$$1__default = /*#__PURE__*/_interopDefault(require$$1);
|
|
10
8
|
|
|
11
9
|
var emailTemplate;
|
|
@@ -13,7 +11,6 @@ var hasRequiredEmailTemplate;
|
|
|
13
11
|
function requireEmailTemplate() {
|
|
14
12
|
if (hasRequiredEmailTemplate) return emailTemplate;
|
|
15
13
|
hasRequiredEmailTemplate = 1;
|
|
16
|
-
const { trim } = require$$0__default.default;
|
|
17
14
|
const { template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp } } = require$$1__default.default;
|
|
18
15
|
const invalidPatternsRegexes = [
|
|
19
16
|
// Ignore "evaluation" patterns: <% ... %>
|
|
@@ -38,7 +35,7 @@ function requireEmailTemplate() {
|
|
|
38
35
|
// eslint-disable-next-line no-cond-assign
|
|
39
36
|
while(match = regexPatternWithGlobal.exec(src)){
|
|
40
37
|
const [, group] = match;
|
|
41
|
-
matches.push(trim(
|
|
38
|
+
matches.push(group.trim());
|
|
42
39
|
}
|
|
43
40
|
return matches;
|
|
44
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-template.js","sources":["../../../../server/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\nconst {
|
|
1
|
+
{"version":3,"file":"email-template.js","sources":["../../../../server/src/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\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(group.trim());\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":["template","createLooseInterpolationRegExp","createStrictInterpolationRegExp","require$$0","invalidPatternsRegexes","authorizedKeys","matchAll","pattern","src","matches","match","regexPatternWithGlobal","RegExp","exec","group","push","trim","isValidEmailTemplate","reg","test","interpolation","strict","loose","strictMatches","looseMatches","length","emailTemplate"],"mappings":";;;;;;;;;;;;;IAEA,MAAM,EACJA,UAAU,EAAEC,8BAA8B,EAAEC,+BAA+B,EAAE,EAC9E,GAAGC,2BAAAA;AAEJ,IAAA,MAAMC,sBAAAA,GAAyB;;AAE7B,QAAA,qBAAA;;AAEA,QAAA;AACD,KAAA;AAED,IAAA,MAAMC,cAAAA,GAAiB;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,OAAAA,EAASC,GAAAA,GAAAA;AACzB,QAAA,MAAMC,UAAU,EAAE;QAClB,IAAIC,KAAAA;QAEJ,MAAMC,sBAAAA,GAAyBC,OAAOL,OAAAA,EAAS,GAAA,CAAA;;AAG/C,QAAA,MAAQG,KAAAA,GAAQC,sBAAAA,CAAuBE,IAAI,CAACL,GAAAA,CAAAA,CAAO;YACjD,MAAM,GAAGM,MAAM,GAAGJ,KAAAA;YAElBD,OAAAA,CAAQM,IAAI,CAACD,KAAAA,CAAME,IAAI,EAAA,CAAA;AAC3B,QAAA;QAEE,OAAOP,OAAAA;AACT,IAAA,CAAA;AAEA,IAAA,MAAMQ,uBAAuB,CAACjB,QAAAA,GAAAA;;QAE5B,KAAK,MAAMkB,OAAOd,sBAAAA,CAAwB;YACxC,IAAIc,GAAAA,CAAIC,IAAI,CAACnB,QAAAA,CAAAA,EAAW;gBACtB,OAAO,KAAA;AACb,YAAA;AACA,QAAA;AAEE,QAAA,MAAMoB,aAAAA,GAAgB;;AAEpBC,YAAAA,MAAAA,EAAQnB,+BAAAA,CAAgCG,cAAAA,CAAAA;;YAExCiB,KAAAA,EAAOrB,8BAAAA;AACX,SAAA;;AAGE,QAAA,MAAMsB,aAAAA,GAAgBjB,QAAAA,CAASc,aAAAA,CAAcC,MAAM,EAAErB,QAAAA,CAAAA;AACrD,QAAA,MAAMwB,YAAAA,GAAelB,QAAAA,CAASc,aAAAA,CAAcE,KAAK,EAAEtB,QAAAA,CAAAA;;;;;AAMnD,QAAA,IAAIwB,YAAAA,CAAaC,MAAM,GAAGF,aAAAA,CAAcE,MAAM,EAAE;YAC9C,OAAO,KAAA;AACX,QAAA;QAEE,OAAO,IAAA;AACT,IAAA,CAAA;IAEAC,aAAAA,GAAiB;AACfT,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import require$$0 from 'lodash/fp';
|
|
2
1
|
import require$$1 from '@strapi/utils';
|
|
3
2
|
|
|
4
3
|
var emailTemplate;
|
|
@@ -6,7 +5,6 @@ var hasRequiredEmailTemplate;
|
|
|
6
5
|
function requireEmailTemplate() {
|
|
7
6
|
if (hasRequiredEmailTemplate) return emailTemplate;
|
|
8
7
|
hasRequiredEmailTemplate = 1;
|
|
9
|
-
const { trim } = require$$0;
|
|
10
8
|
const { template: { createLooseInterpolationRegExp, createStrictInterpolationRegExp } } = require$$1;
|
|
11
9
|
const invalidPatternsRegexes = [
|
|
12
10
|
// Ignore "evaluation" patterns: <% ... %>
|
|
@@ -31,7 +29,7 @@ function requireEmailTemplate() {
|
|
|
31
29
|
// eslint-disable-next-line no-cond-assign
|
|
32
30
|
while(match = regexPatternWithGlobal.exec(src)){
|
|
33
31
|
const [, group] = match;
|
|
34
|
-
matches.push(trim(
|
|
32
|
+
matches.push(group.trim());
|
|
35
33
|
}
|
|
36
34
|
return matches;
|
|
37
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-template.mjs","sources":["../../../../server/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\nconst {
|
|
1
|
+
{"version":3,"file":"email-template.mjs","sources":["../../../../server/src/controllers/validation/email-template.js"],"sourcesContent":["'use strict';\n\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(group.trim());\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":["template","createLooseInterpolationRegExp","createStrictInterpolationRegExp","require$$0","invalidPatternsRegexes","authorizedKeys","matchAll","pattern","src","matches","match","regexPatternWithGlobal","RegExp","exec","group","push","trim","isValidEmailTemplate","reg","test","interpolation","strict","loose","strictMatches","looseMatches","length","emailTemplate"],"mappings":";;;;;;;IAEA,MAAM,EACJA,UAAU,EAAEC,8BAA8B,EAAEC,+BAA+B,EAAE,EAC9E,GAAGC,UAAAA;AAEJ,IAAA,MAAMC,sBAAAA,GAAyB;;AAE7B,QAAA,qBAAA;;AAEA,QAAA;AACD,KAAA;AAED,IAAA,MAAMC,cAAAA,GAAiB;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,OAAAA,EAASC,GAAAA,GAAAA;AACzB,QAAA,MAAMC,UAAU,EAAE;QAClB,IAAIC,KAAAA;QAEJ,MAAMC,sBAAAA,GAAyBC,OAAOL,OAAAA,EAAS,GAAA,CAAA;;AAG/C,QAAA,MAAQG,KAAAA,GAAQC,sBAAAA,CAAuBE,IAAI,CAACL,GAAAA,CAAAA,CAAO;YACjD,MAAM,GAAGM,MAAM,GAAGJ,KAAAA;YAElBD,OAAAA,CAAQM,IAAI,CAACD,KAAAA,CAAME,IAAI,EAAA,CAAA;AAC3B,QAAA;QAEE,OAAOP,OAAAA;AACT,IAAA,CAAA;AAEA,IAAA,MAAMQ,uBAAuB,CAACjB,QAAAA,GAAAA;;QAE5B,KAAK,MAAMkB,OAAOd,sBAAAA,CAAwB;YACxC,IAAIc,GAAAA,CAAIC,IAAI,CAACnB,QAAAA,CAAAA,EAAW;gBACtB,OAAO,KAAA;AACb,YAAA;AACA,QAAA;AAEE,QAAA,MAAMoB,aAAAA,GAAgB;;AAEpBC,YAAAA,MAAAA,EAAQnB,+BAAAA,CAAgCG,cAAAA,CAAAA;;YAExCiB,KAAAA,EAAOrB,8BAAAA;AACX,SAAA;;AAGE,QAAA,MAAMsB,aAAAA,GAAgBjB,QAAAA,CAASc,aAAAA,CAAcC,MAAM,EAAErB,QAAAA,CAAAA;AACrD,QAAA,MAAMwB,YAAAA,GAAelB,QAAAA,CAASc,aAAAA,CAAcE,KAAK,EAAEtB,QAAAA,CAAAA;;;;;AAMnD,QAAA,IAAIwB,YAAAA,CAAaC,MAAM,GAAGF,aAAAA,CAAcE,MAAM,EAAE;YAC9C,OAAO,KAAA;AACX,QAAA;QAEE,OAAO,IAAA;AACT,IAAA,CAAA;IAEAC,aAAAA,GAAiB;AACfT,QAAAA;AACF,KAAA;;;;;;"}
|
|
@@ -1 +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\n// A role relation entry may be referenced by numeric `id` (legacy) or by\n// `documentId` (the v5 default), but must carry at least one of them.\nconst roleRelationEntrySchema = yup\n .object()\n .shape({ id: yup.strapiID(), documentId: yup.strapiID() })\n .test(\n 'id-or-documentId',\n 'Relation entry must include an id or documentId',\n (entry) => !!entry && (entry.id != null || entry.documentId != null)\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(roleRelationEntrySchema)\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\n .mixed()\n .test(\n 'password-validation',\n 'Password must be at least 1 character',\n function validatePassword(value) {\n if (value == null || value === '') {\n return true;\n }\n return typeof value === 'string' && value.length >= 1;\n }\n ),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n // connect/disconnect are each optional (matching core relation inputs),\n // but a role must remain: reject disconnecting every role without\n // connecting a replacement.\n connect: yup.array().of(roleRelationEntrySchema),\n disconnect: yup\n .array()\n .of(roleRelationEntrySchema)\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnect) {\n const connectValue = value.connect || [];\n const disconnectValue = disconnect || [];\n if (connectValue.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n }),\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","roleRelationEntrySchema","id","documentId","test","entry","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","updateUserBodySchema","mixed","validatePassword","length","disconnect","connectValue","disconnectValue","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":";;;;;;;;;;;;;AAEA,IAAA,MAAM,EAAEA,GAAG,EAAEC,iBAAiB,EAAE,GAAGC,2BAAAA;AAEnC,IAAA,MAAMC,gBAAAA,GAAmBH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;QAC1CC,IAAAA,EAAMN,GAAAA,CAAIO,QAAQ,EAAA,CAAGC,QAAQ;AAC/B,KAAA,CAAA;;;AAIA,IAAA,MAAMC,uBAAAA,GAA0BT,GAAAA,CAC7BI,MAAM,EAAA,CACNC,KAAK,CAAC;AAAEK,QAAAA,EAAAA,EAAIV,IAAIO,QAAQ,EAAA;AAAII,QAAAA,UAAAA,EAAYX,IAAIO,QAAQ;
|
|
1
|
+
{"version":3,"file":"user.js","sources":["../../../../server/src/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\n// A role relation entry may be referenced by numeric `id` (legacy) or by\n// `documentId` (the v5 default), but must carry at least one of them.\nconst roleRelationEntrySchema = yup\n .object()\n .shape({ id: yup.strapiID(), documentId: yup.strapiID() })\n .test(\n 'id-or-documentId',\n 'Relation entry must include an id or documentId',\n (entry) => !!entry && (entry.id != null || entry.documentId != null)\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(roleRelationEntrySchema)\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\n .mixed()\n .test(\n 'password-validation',\n 'Password must be at least 1 character',\n function validatePassword(value) {\n if (value == null || value === '') {\n return true;\n }\n return typeof value === 'string' && value.length >= 1;\n }\n ),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n // connect/disconnect are each optional (matching core relation inputs),\n // but a role must remain: reject disconnecting every role without\n // connecting a replacement.\n connect: yup.array().of(roleRelationEntrySchema),\n disconnect: yup\n .array()\n .of(roleRelationEntrySchema)\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnect) {\n const connectValue = value.connect || [];\n const disconnectValue = disconnect || [];\n if (connectValue.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n }),\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","roleRelationEntrySchema","id","documentId","test","entry","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","updateUserBodySchema","mixed","validatePassword","length","disconnect","connectValue","disconnectValue","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
|
|
@@ -1 +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\n// A role relation entry may be referenced by numeric `id` (legacy) or by\n// `documentId` (the v5 default), but must carry at least one of them.\nconst roleRelationEntrySchema = yup\n .object()\n .shape({ id: yup.strapiID(), documentId: yup.strapiID() })\n .test(\n 'id-or-documentId',\n 'Relation entry must include an id or documentId',\n (entry) => !!entry && (entry.id != null || entry.documentId != null)\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(roleRelationEntrySchema)\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\n .mixed()\n .test(\n 'password-validation',\n 'Password must be at least 1 character',\n function validatePassword(value) {\n if (value == null || value === '') {\n return true;\n }\n return typeof value === 'string' && value.length >= 1;\n }\n ),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n // connect/disconnect are each optional (matching core relation inputs),\n // but a role must remain: reject disconnecting every role without\n // connecting a replacement.\n connect: yup.array().of(roleRelationEntrySchema),\n disconnect: yup\n .array()\n .of(roleRelationEntrySchema)\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnect) {\n const connectValue = value.connect || [];\n const disconnectValue = disconnect || [];\n if (connectValue.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n }),\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","roleRelationEntrySchema","id","documentId","test","entry","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","updateUserBodySchema","mixed","validatePassword","length","disconnect","connectValue","disconnectValue","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":";;;;;;;AAEA,IAAA,MAAM,EAAEA,GAAG,EAAEC,iBAAiB,EAAE,GAAGC,UAAAA;AAEnC,IAAA,MAAMC,gBAAAA,GAAmBH,GAAAA,CAAII,MAAM,EAAA,CAAGC,KAAK,CAAC;QAC1CC,IAAAA,EAAMN,GAAAA,CAAIO,QAAQ,EAAA,CAAGC,QAAQ;AAC/B,KAAA,CAAA;;;AAIA,IAAA,MAAMC,uBAAAA,GAA0BT,GAAAA,CAC7BI,MAAM,EAAA,CACNC,KAAK,CAAC;AAAEK,QAAAA,EAAAA,EAAIV,IAAIO,QAAQ,EAAA;AAAII,QAAAA,UAAAA,EAAYX,IAAIO,QAAQ;
|
|
1
|
+
{"version":3,"file":"user.mjs","sources":["../../../../server/src/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\n// A role relation entry may be referenced by numeric `id` (legacy) or by\n// `documentId` (the v5 default), but must carry at least one of them.\nconst roleRelationEntrySchema = yup\n .object()\n .shape({ id: yup.strapiID(), documentId: yup.strapiID() })\n .test(\n 'id-or-documentId',\n 'Relation entry must include an id or documentId',\n (entry) => !!entry && (entry.id != null || entry.documentId != null)\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(roleRelationEntrySchema)\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\n .mixed()\n .test(\n 'password-validation',\n 'Password must be at least 1 character',\n function validatePassword(value) {\n if (value == null || value === '') {\n return true;\n }\n return typeof value === 'string' && value.length >= 1;\n }\n ),\n role: yup.lazy((value) =>\n typeof value === 'object'\n ? yup.object().shape({\n // connect/disconnect are each optional (matching core relation inputs),\n // but a role must remain: reject disconnecting every role without\n // connecting a replacement.\n connect: yup.array().of(roleRelationEntrySchema),\n disconnect: yup\n .array()\n .of(roleRelationEntrySchema)\n .test('CheckDisconnect', 'Cannot remove role', function test(disconnect) {\n const connectValue = value.connect || [];\n const disconnectValue = disconnect || [];\n if (connectValue.length === 0 && disconnectValue.length > 0) {\n return false;\n }\n\n return true;\n }),\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","roleRelationEntrySchema","id","documentId","test","entry","createUserBodySchema","email","string","username","min","password","lazy","value","connect","array","of","updateUserBodySchema","mixed","validatePassword","length","disconnect","connectValue","disconnectValue","user","validateCreateUserBody","validateUpdateUserBody","validateDeleteRoleBody"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../server/graphql/index.js"],"sourcesContent":["'use strict';\n\nconst getTypes = require('./types');\nconst getQueries = require('./queries');\nconst getMutations = require('./mutations');\nconst getResolversConfig = require('./resolvers-configs');\n\nmodule.exports = ({ strapi }) => {\n const { config: graphQLConfig } = strapi.plugin('graphql');\n const extensionService = strapi.plugin('graphql').service('extension');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n // Disable Permissions queries & mutations but allow the\n // type to be used/selected in filters or nested resolvers\n extensionService\n .shadowCRUD('plugin::users-permissions.permission')\n .disableQueries()\n .disableMutations();\n\n // Disable User & Role's Create/Update/Delete actions so they can be replaced\n const actionsToDisable = ['create', 'update', 'delete'];\n\n extensionService.shadowCRUD('plugin::users-permissions.user').disableActions(actionsToDisable);\n extensionService.shadowCRUD('plugin::users-permissions.role').disableActions(actionsToDisable);\n\n // Register new types & resolvers config\n extensionService.use(({ nexus }) => {\n const types = getTypes({ strapi, nexus });\n const queries = getQueries({ strapi, nexus });\n const mutations = getMutations({ strapi, nexus });\n const resolversConfig = getResolversConfig({ strapi });\n\n return {\n types: [types, queries, mutations],\n\n resolversConfig,\n };\n });\n};\n"],"names":["getTypes","require$$0","getQueries","require$$1","getMutations","require$$2","getResolversConfig","require$$3","graphql","strapi","config","graphQLConfig","plugin","extensionService","service","isShadowCRUDEnabled","shadowCRUD","disableQueries","disableMutations","actionsToDisable","disableActions","use","nexus","types","queries","mutations","resolversConfig"],"mappings":";;;;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;AACnB,IAAA,MAAMC,YAAAA,GAAeC,iBAAAA,EAAAA;AACrB,IAAA,MAAMC,kBAAAA,GAAqBC,0BAAAA,EAAAA;IAE3BC,OAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1B,QAAA,MAAM,EAAEC,MAAAA,EAAQC,aAAa,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAChD,QAAA,MAAMC,mBAAmBJ,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWE,OAAO,CAAC,WAAA,CAAA;QAE1D,MAAMC,mBAAAA,GAAsBJ,cAAc,YAAA,EAAc,IAAA,CAAA;AAExD,QAAA,IAAI,CAACI,mBAAAA,EAAqB;AACxB,YAAA;AACJ,QAAA;;;AAIEF,QAAAA,gBAAAA,CACGG,UAAU,CAAC,sCAAA,CAAA,CACXC,cAAc,GACdC,gBAAgB,EAAA;;AAGnB,QAAA,MAAMC,gBAAAA,GAAmB;AAAC,YAAA,QAAA;AAAU,YAAA,QAAA;AAAU,YAAA;AAAS,SAAA;AAEvDN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;AAC7EN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;;AAG7EN,QAAAA,gBAAAA,CAAiBQ,GAAG,CAAC,CAAC,EAAEC,KAAK,EAAE,GAAA;AAC7B,YAAA,MAAMC,QAAQvB,QAAAA,CAAS;AAAES,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AACtC,YAAA,MAAME,UAAUtB,UAAAA,CAAW;AAAEO,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC1C,YAAA,MAAMG,YAAYrB,YAAAA,CAAa;AAAEK,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC9C,YAAA,MAAMI,kBAAkBpB,kBAAAA,CAAmB;AAAEG,gBAAAA
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/graphql/index.js"],"sourcesContent":["'use strict';\n\nconst getTypes = require('./types');\nconst getQueries = require('./queries');\nconst getMutations = require('./mutations');\nconst getResolversConfig = require('./resolvers-configs');\n\nmodule.exports = ({ strapi }) => {\n const { config: graphQLConfig } = strapi.plugin('graphql');\n const extensionService = strapi.plugin('graphql').service('extension');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n // Disable Permissions queries & mutations but allow the\n // type to be used/selected in filters or nested resolvers\n extensionService\n .shadowCRUD('plugin::users-permissions.permission')\n .disableQueries()\n .disableMutations();\n\n // Disable User & Role's Create/Update/Delete actions so they can be replaced\n const actionsToDisable = ['create', 'update', 'delete'];\n\n extensionService.shadowCRUD('plugin::users-permissions.user').disableActions(actionsToDisable);\n extensionService.shadowCRUD('plugin::users-permissions.role').disableActions(actionsToDisable);\n\n // Register new types & resolvers config\n extensionService.use(({ nexus }) => {\n const types = getTypes({ strapi, nexus });\n const queries = getQueries({ strapi, nexus });\n const mutations = getMutations({ strapi, nexus });\n const resolversConfig = getResolversConfig({ strapi });\n\n return {\n types: [types, queries, mutations],\n\n resolversConfig,\n };\n });\n};\n"],"names":["getTypes","require$$0","getQueries","require$$1","getMutations","require$$2","getResolversConfig","require$$3","graphql","strapi","config","graphQLConfig","plugin","extensionService","service","isShadowCRUDEnabled","shadowCRUD","disableQueries","disableMutations","actionsToDisable","disableActions","use","nexus","types","queries","mutations","resolversConfig"],"mappings":";;;;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,eAAAA,EAAAA;AACjB,IAAA,MAAMC,UAAAA,GAAaC,iBAAAA,EAAAA;AACnB,IAAA,MAAMC,YAAAA,GAAeC,iBAAAA,EAAAA;AACrB,IAAA,MAAMC,kBAAAA,GAAqBC,0BAAAA,EAAAA;IAE3BC,OAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1B,QAAA,MAAM,EAAEC,MAAAA,EAAQC,aAAa,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAChD,QAAA,MAAMC,mBAAmBJ,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWE,OAAO,CAAC,WAAA,CAAA;QAE1D,MAAMC,mBAAAA,GAAsBJ,cAAc,YAAA,EAAc,IAAA,CAAA;AAExD,QAAA,IAAI,CAACI,mBAAAA,EAAqB;AACxB,YAAA;AACJ,QAAA;;;AAIEF,QAAAA,gBAAAA,CACGG,UAAU,CAAC,sCAAA,CAAA,CACXC,cAAc,GACdC,gBAAgB,EAAA;;AAGnB,QAAA,MAAMC,gBAAAA,GAAmB;AAAC,YAAA,QAAA;AAAU,YAAA,QAAA;AAAU,YAAA;AAAS,SAAA;AAEvDN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;AAC7EN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;;AAG7EN,QAAAA,gBAAAA,CAAiBQ,GAAG,CAAC,CAAC,EAAEC,KAAK,EAAE,GAAA;AAC7B,YAAA,MAAMC,QAAQvB,QAAAA,CAAS;AAAES,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AACtC,YAAA,MAAME,UAAUtB,UAAAA,CAAW;AAAEO,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC1C,YAAA,MAAMG,YAAYrB,YAAAA,CAAa;AAAEK,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC9C,YAAA,MAAMI,kBAAkBpB,kBAAAA,CAAmB;AAAEG,gBAAAA;;YAE7C,OAAO;gBACLc,KAAAA,EAAO;AAACA,oBAAAA,KAAAA;AAAOC,oBAAAA,OAAAA;AAASC,oBAAAA;AAAU,iBAAA;AAElCC,gBAAAA;AACN,aAAA;AACA,QAAA,CAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../server/graphql/index.js"],"sourcesContent":["'use strict';\n\nconst getTypes = require('./types');\nconst getQueries = require('./queries');\nconst getMutations = require('./mutations');\nconst getResolversConfig = require('./resolvers-configs');\n\nmodule.exports = ({ strapi }) => {\n const { config: graphQLConfig } = strapi.plugin('graphql');\n const extensionService = strapi.plugin('graphql').service('extension');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n // Disable Permissions queries & mutations but allow the\n // type to be used/selected in filters or nested resolvers\n extensionService\n .shadowCRUD('plugin::users-permissions.permission')\n .disableQueries()\n .disableMutations();\n\n // Disable User & Role's Create/Update/Delete actions so they can be replaced\n const actionsToDisable = ['create', 'update', 'delete'];\n\n extensionService.shadowCRUD('plugin::users-permissions.user').disableActions(actionsToDisable);\n extensionService.shadowCRUD('plugin::users-permissions.role').disableActions(actionsToDisable);\n\n // Register new types & resolvers config\n extensionService.use(({ nexus }) => {\n const types = getTypes({ strapi, nexus });\n const queries = getQueries({ strapi, nexus });\n const mutations = getMutations({ strapi, nexus });\n const resolversConfig = getResolversConfig({ strapi });\n\n return {\n types: [types, queries, mutations],\n\n resolversConfig,\n };\n });\n};\n"],"names":["getTypes","require$$0","getQueries","require$$1","getMutations","require$$2","getResolversConfig","require$$3","graphql","strapi","config","graphQLConfig","plugin","extensionService","service","isShadowCRUDEnabled","shadowCRUD","disableQueries","disableMutations","actionsToDisable","disableActions","use","nexus","types","queries","mutations","resolversConfig"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,YAAAA,EAAAA;AACjB,IAAA,MAAMC,UAAAA,GAAaC,cAAAA,EAAAA;AACnB,IAAA,MAAMC,YAAAA,GAAeC,gBAAAA,EAAAA;AACrB,IAAA,MAAMC,kBAAAA,GAAqBC,uBAAAA,EAAAA;IAE3BC,OAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1B,QAAA,MAAM,EAAEC,MAAAA,EAAQC,aAAa,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAChD,QAAA,MAAMC,mBAAmBJ,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWE,OAAO,CAAC,WAAA,CAAA;QAE1D,MAAMC,mBAAAA,GAAsBJ,cAAc,YAAA,EAAc,IAAA,CAAA;AAExD,QAAA,IAAI,CAACI,mBAAAA,EAAqB;AACxB,YAAA;AACJ,QAAA;;;AAIEF,QAAAA,gBAAAA,CACGG,UAAU,CAAC,sCAAA,CAAA,CACXC,cAAc,GACdC,gBAAgB,EAAA;;AAGnB,QAAA,MAAMC,gBAAAA,GAAmB;AAAC,YAAA,QAAA;AAAU,YAAA,QAAA;AAAU,YAAA;AAAS,SAAA;AAEvDN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;AAC7EN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;;AAG7EN,QAAAA,gBAAAA,CAAiBQ,GAAG,CAAC,CAAC,EAAEC,KAAK,EAAE,GAAA;AAC7B,YAAA,MAAMC,QAAQvB,QAAAA,CAAS;AAAES,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AACtC,YAAA,MAAME,UAAUtB,UAAAA,CAAW;AAAEO,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC1C,YAAA,MAAMG,YAAYrB,YAAAA,CAAa;AAAEK,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC9C,YAAA,MAAMI,kBAAkBpB,kBAAAA,CAAmB;AAAEG,gBAAAA
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/graphql/index.js"],"sourcesContent":["'use strict';\n\nconst getTypes = require('./types');\nconst getQueries = require('./queries');\nconst getMutations = require('./mutations');\nconst getResolversConfig = require('./resolvers-configs');\n\nmodule.exports = ({ strapi }) => {\n const { config: graphQLConfig } = strapi.plugin('graphql');\n const extensionService = strapi.plugin('graphql').service('extension');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n // Disable Permissions queries & mutations but allow the\n // type to be used/selected in filters or nested resolvers\n extensionService\n .shadowCRUD('plugin::users-permissions.permission')\n .disableQueries()\n .disableMutations();\n\n // Disable User & Role's Create/Update/Delete actions so they can be replaced\n const actionsToDisable = ['create', 'update', 'delete'];\n\n extensionService.shadowCRUD('plugin::users-permissions.user').disableActions(actionsToDisable);\n extensionService.shadowCRUD('plugin::users-permissions.role').disableActions(actionsToDisable);\n\n // Register new types & resolvers config\n extensionService.use(({ nexus }) => {\n const types = getTypes({ strapi, nexus });\n const queries = getQueries({ strapi, nexus });\n const mutations = getMutations({ strapi, nexus });\n const resolversConfig = getResolversConfig({ strapi });\n\n return {\n types: [types, queries, mutations],\n\n resolversConfig,\n };\n });\n};\n"],"names":["getTypes","require$$0","getQueries","require$$1","getMutations","require$$2","getResolversConfig","require$$3","graphql","strapi","config","graphQLConfig","plugin","extensionService","service","isShadowCRUDEnabled","shadowCRUD","disableQueries","disableMutations","actionsToDisable","disableActions","use","nexus","types","queries","mutations","resolversConfig"],"mappings":";;;;;;;;;;AAEA,IAAA,MAAMA,QAAAA,GAAWC,YAAAA,EAAAA;AACjB,IAAA,MAAMC,UAAAA,GAAaC,cAAAA,EAAAA;AACnB,IAAA,MAAMC,YAAAA,GAAeC,gBAAAA,EAAAA;AACrB,IAAA,MAAMC,kBAAAA,GAAqBC,uBAAAA,EAAAA;IAE3BC,OAAAA,GAAiB,CAAC,EAAEC,MAAM,EAAE,GAAA;AAC1B,QAAA,MAAM,EAAEC,MAAAA,EAAQC,aAAa,EAAE,GAAGF,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA;AAChD,QAAA,MAAMC,mBAAmBJ,MAAAA,CAAOG,MAAM,CAAC,SAAA,CAAA,CAAWE,OAAO,CAAC,WAAA,CAAA;QAE1D,MAAMC,mBAAAA,GAAsBJ,cAAc,YAAA,EAAc,IAAA,CAAA;AAExD,QAAA,IAAI,CAACI,mBAAAA,EAAqB;AACxB,YAAA;AACJ,QAAA;;;AAIEF,QAAAA,gBAAAA,CACGG,UAAU,CAAC,sCAAA,CAAA,CACXC,cAAc,GACdC,gBAAgB,EAAA;;AAGnB,QAAA,MAAMC,gBAAAA,GAAmB;AAAC,YAAA,QAAA;AAAU,YAAA,QAAA;AAAU,YAAA;AAAS,SAAA;AAEvDN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;AAC7EN,QAAAA,gBAAAA,CAAiBG,UAAU,CAAC,gCAAA,CAAA,CAAkCI,cAAc,CAACD,gBAAAA,CAAAA;;AAG7EN,QAAAA,gBAAAA,CAAiBQ,GAAG,CAAC,CAAC,EAAEC,KAAK,EAAE,GAAA;AAC7B,YAAA,MAAMC,QAAQvB,QAAAA,CAAS;AAAES,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AACtC,YAAA,MAAME,UAAUtB,UAAAA,CAAW;AAAEO,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC1C,YAAA,MAAMG,YAAYrB,YAAAA,CAAa;AAAEK,gBAAAA,MAAAA;AAAQa,gBAAAA;AAAK,aAAA,CAAA;AAC9C,YAAA,MAAMI,kBAAkBpB,kBAAAA,CAAmB;AAAEG,gBAAAA;;YAE7C,OAAO;gBACLc,KAAAA,EAAO;AAACA,oBAAAA,KAAAA;AAAOC,oBAAAA,OAAAA;AAASC,oBAAAA;AAAU,iBAAA;AAElCC,gBAAAA;AACN,aAAA;AACA,QAAA,CAAA,CAAA;AACA,IAAA,CAAA;;;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var require$$0 = require('lodash
|
|
3
|
+
var require$$0 = require('lodash');
|
|
4
4
|
var utils = require('../../utils.js');
|
|
5
|
+
var rateLimit = require('./rate-limit.js');
|
|
5
6
|
|
|
6
7
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
8
|
|
|
@@ -14,8 +15,10 @@ function requireChangePassword() {
|
|
|
14
15
|
hasRequiredChangePassword = 1;
|
|
15
16
|
const { toPlainObject } = require$$0__default.default;
|
|
16
17
|
const { checkBadRequest } = utils.__require();
|
|
18
|
+
const { createRateLimitRunner } = rateLimit.__require();
|
|
17
19
|
changePassword = ({ nexus, strapi })=>{
|
|
18
20
|
const { nonNull } = nexus;
|
|
21
|
+
const runRateLimit = createRateLimitRunner(strapi, '/auth/change-password');
|
|
19
22
|
return {
|
|
20
23
|
type: 'UsersPermissionsLoginPayload',
|
|
21
24
|
args: {
|
|
@@ -26,9 +29,9 @@ function requireChangePassword() {
|
|
|
26
29
|
description: 'Change user password. Confirm with the current password.',
|
|
27
30
|
async resolve (parent, args, context) {
|
|
28
31
|
const { koaContext } = context;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
const output = await runRateLimit(koaContext, {
|
|
33
|
+
body: toPlainObject(args)
|
|
34
|
+
}, (ctx)=>strapi.plugin('users-permissions').controller('auth').changePassword(ctx));
|
|
32
35
|
checkBadRequest(output);
|
|
33
36
|
return {
|
|
34
37
|
user: output.user || output,
|