@antelopejs/dms 0.4.4 → 0.4.6
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/CHANGELOG.md +43 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.js.map +1 -1
- package/dist/hooks/invite-extensions.js +2 -2
- package/dist/hooks/invite-extensions.js.map +1 -1
- package/dist/implementations/dms/layout-banners.d.ts +18 -0
- package/dist/implementations/dms/layout-banners.js +60 -0
- package/dist/implementations/dms/layout-banners.js.map +1 -0
- package/dist/implementations/dms/page.d.ts +3 -0
- package/dist/implementations/dms/page.js +90 -28
- package/dist/implementations/dms/page.js.map +1 -1
- package/dist/implementations/dms/quick-actions.d.ts +5 -0
- package/dist/implementations/dms/quick-actions.js.map +1 -1
- package/dist/implementations/dms/resolver-timeout.d.ts +1 -0
- package/dist/implementations/dms/resolver-timeout.js +13 -0
- package/dist/implementations/dms/resolver-timeout.js.map +1 -0
- package/dist/implementations/dms/saas-mode.d.ts +8 -0
- package/dist/implementations/dms/saas-mode.js +20 -0
- package/dist/implementations/dms/saas-mode.js.map +1 -0
- package/dist/implementations/dms/stale-session.d.ts +2 -0
- package/dist/implementations/dms/stale-session.js +16 -0
- package/dist/implementations/dms/stale-session.js.map +1 -0
- package/dist/implementations/dms-auth/index.d.ts +3 -1
- package/dist/implementations/dms-auth/index.js +38 -8
- package/dist/implementations/dms-auth/index.js.map +1 -1
- package/dist/implementations/dms-html-render/service-jwt.js +2 -1
- package/dist/implementations/dms-html-render/service-jwt.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/pages/settings/users/index.d.ts +1 -0
- package/dist/pages/settings/users/index.js +1 -0
- package/dist/pages/settings/users/index.js.map +1 -1
- package/dist/pages/settings/users/invite-extension-routes.d.ts +4 -0
- package/dist/pages/settings/users/invite-extension-routes.js +57 -0
- package/dist/pages/settings/users/invite-extension-routes.js.map +1 -0
- package/dist/pages/settings/users/invites.d.ts +2 -1
- package/dist/pages/settings/users/invites.js +17 -5
- package/dist/pages/settings/users/invites.js.map +1 -1
- package/dist/pages/settings/users/members.d.ts +4 -1
- package/dist/pages/settings/users/members.js +10 -6
- package/dist/pages/settings/users/members.js.map +1 -1
- package/dist/pages/settings/users/notifications.js +1 -1
- package/dist/pages/settings/users/notifications.js.map +1 -1
- package/dist/pages/settings/users/quick-actions.d.ts +1 -0
- package/dist/pages/settings/users/quick-actions.js +22 -0
- package/dist/pages/settings/users/quick-actions.js.map +1 -0
- package/dist/routes/auth/client-ip.d.ts +7 -0
- package/dist/routes/auth/client-ip.js +42 -0
- package/dist/routes/auth/client-ip.js.map +1 -0
- package/dist/routes/auth/index.d.ts +1 -0
- package/dist/routes/auth/index.js +1 -0
- package/dist/routes/auth/index.js.map +1 -1
- package/dist/routes/auth/signup.d.ts +2 -0
- package/dist/routes/auth/signup.js +7 -2
- package/dist/routes/auth/signup.js.map +1 -1
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.js +15 -4
- package/dist/routes/auth.js.map +1 -1
- package/dist/test/integration/auth/client-ip.test.d.ts +1 -0
- package/dist/test/integration/auth/client-ip.test.js +14 -0
- package/dist/test/integration/auth/client-ip.test.js.map +1 -0
- package/dist/test/integration/invite-extension-edit.test.d.ts +1 -0
- package/dist/test/integration/invite-extension-edit.test.js +122 -0
- package/dist/test/integration/invite-extension-edit.test.js.map +1 -0
- package/dist/test/integration/page-session.test.d.ts +1 -0
- package/dist/test/integration/page-session.test.js +52 -0
- package/dist/test/integration/page-session.test.js.map +1 -0
- package/dist/test/integration/saas-mode-ownership.test.d.ts +1 -0
- package/dist/test/integration/saas-mode-ownership.test.js +81 -0
- package/dist/test/integration/saas-mode-ownership.test.js.map +1 -0
- package/dist/test/integration/tenant-lifecycle.test.js +38 -0
- package/dist/test/integration/tenant-lifecycle.test.js.map +1 -1
- package/dist/test/unit/client-ip.test.d.ts +1 -0
- package/dist/test/unit/client-ip.test.js +77 -0
- package/dist/test/unit/client-ip.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/layout-banners.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/layout-banners.test.js +217 -0
- package/dist/test/unit/implementations/dms/layout-banners.test.js.map +1 -0
- package/dist/test/unit/implementations/dms/quick-actions-button.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms/quick-actions-button.test.js +220 -0
- package/dist/test/unit/implementations/dms/quick-actions-button.test.js.map +1 -0
- package/dist/test/unit/implementations/dms-html-render/generate-html.test.js +1 -1
- package/dist/test/unit/implementations/dms-html-render/generate-html.test.js.map +1 -1
- package/dist/test/unit/implementations/dms-html-render/service-jwt.test.d.ts +1 -0
- package/dist/test/unit/implementations/dms-html-render/service-jwt.test.js +37 -0
- package/dist/test/unit/implementations/dms-html-render/service-jwt.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/invite-extension.test.js +138 -12
- package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +1 -1
- package/dist/test/unit/interfaces/dms/saas-mode.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/saas-mode.test.js +42 -0
- package/dist/test/unit/interfaces/dms/saas-mode.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms/tenant-invite-email.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms/tenant-invite-email.test.js +53 -0
- package/dist/test/unit/interfaces/dms/tenant-invite-email.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.js +80 -0
- package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.js.map +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.d.ts +1 -0
- package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js +96 -0
- package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js.map +1 -0
- package/dist/test/unit/pages/settings/invite-member-quick-action.test.d.ts +1 -0
- package/dist/test/unit/pages/settings/invite-member-quick-action.test.js +104 -0
- package/dist/test/unit/pages/settings/invite-member-quick-action.test.js.map +1 -0
- package/dist/test/unit/pages/settings/notifications-access-gate.test.d.ts +1 -0
- package/dist/test/unit/pages/settings/notifications-access-gate.test.js +78 -0
- package/dist/test/unit/pages/settings/notifications-access-gate.test.js.map +1 -0
- package/dist/test/unit/signup-account-guard.test.js +20 -2
- package/dist/test/unit/signup-account-guard.test.js.map +1 -1
- package/dist/test/unit/utils/admin-invite-email.test.d.ts +1 -0
- package/dist/test/unit/utils/admin-invite-email.test.js +69 -0
- package/dist/test/unit/utils/admin-invite-email.test.js.map +1 -0
- package/dist/utils/admin-invite-email.d.ts +14 -0
- package/dist/utils/admin-invite-email.js +51 -0
- package/dist/utils/admin-invite-email.js.map +1 -0
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/validation/auth.schema.d.ts +3 -3
- package/dist/validation/auth.schema.js +1 -1
- package/dist/validation/auth.schema.js.map +1 -1
- package/frontend-vue/layers/dms-auth/app/custom-pages/auth/signup.vue +37 -8
- package/frontend-vue/layers/dms-auth/app/middleware/auth.ts +5 -2
- package/frontend-vue/layers/dms-auth/i18n/locales/auth-en-GB.json +3 -1
- package/frontend-vue/layers/dms-auth/i18n/locales/auth-fr-FR.json +3 -1
- package/frontend-vue/layers/dms-core/app/composables/useApiError.ts +27 -2
- package/frontend-vue/layers/dms-core/app/utils/menu.ts +26 -10
- package/frontend-vue/layers/dms-core/app/utils/routePath.ts +23 -0
- package/frontend-vue/layers/dms-core/i18n/locales/core-en-GB.json +3 -0
- package/frontend-vue/layers/dms-core/i18n/locales/core-fr-FR.json +3 -0
- package/frontend-vue/layers/dms-core/shared/types/runtime-config.d.ts +4 -1
- package/frontend-vue/layers/dms-layout/app/app.config.ts +9 -1
- package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardBanners.vue +50 -0
- package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardHeader.vue +16 -13
- package/frontend-vue/layers/dms-layout/app/build/components/layout/DashboardSidebar.vue +2 -2
- package/frontend-vue/layers/dms-layout/app/build/components/notification/NotificationPopover.vue +11 -5
- package/frontend-vue/layers/dms-layout/app/build/components/notification/widgetRequest.ts +20 -0
- package/frontend-vue/layers/dms-layout/app/components/navigation/CollapsedMenuItem.vue +0 -5
- package/frontend-vue/layers/dms-layout/app/components/profile/ProfileLanguage.vue +3 -23
- package/frontend-vue/layers/dms-layout/app/composables/layout/useLayoutBanners.ts +59 -0
- package/frontend-vue/layers/dms-layout/app/composables/page/useQuickActions.ts +15 -2
- package/frontend-vue/layers/dms-layout/app/composables/profile/useUserLanguage.ts +33 -0
- package/frontend-vue/layers/dms-layout/app/custom-layouts/DefaultLayout.vue +2 -0
- package/frontend-vue/layers/dms-layout/app/emails/EmailAdminInvite.vue +54 -9
- package/frontend-vue/layers/dms-layout/app/error.vue +17 -2
- package/frontend-vue/layers/dms-layout/app/plugins/command-palette-session.client.ts +2 -1
- package/frontend-vue/layers/dms-layout/app/types/page.ts +22 -0
- package/frontend-vue/layers/dms-layout/app/utils/breadcrumb.ts +48 -0
- package/frontend-vue/layers/dms-layout/app/utils/favorites.ts +94 -0
- package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +21 -2
- package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +21 -2
- package/frontend-vue/layers/dms-onboarding/app/composables/onboarding/index.ts +1 -1
- package/frontend-vue/layers/dms-onboarding/app/composables/onboarding/{useOnboardingMiddleware.ts → useOnboarding.ts} +0 -12
- package/frontend-vue/layers/dms-onboarding/app/custom-pages/onboarding.vue +4 -1
- package/frontend-vue/layers/dms-onboarding/app/middleware/onboarding.global.ts +21 -4
- package/frontend-vue/layers/dms-ui/app/build/components/containers/drawer/DynamicDrawer.vue +13 -3
- package/frontend-vue/layers/dms-ui/app/build/components/containers/modal/DynamicModal.vue +13 -3
- package/frontend-vue/layers/dms-ui/app/build/composables/data-types/registerDefaults.ts +31 -3
- package/frontend-vue/layers/dms-ui/app/build/composables/data-types/relationBadges.ts +36 -0
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableViewConfig.ts +2 -7
- package/frontend-vue/layers/dms-ui/app/build/composables/table-view/utils/columnVisibility.ts +13 -0
- package/frontend-vue/layers/dms-ui/app/build/types/tree.ts +5 -10
- package/frontend-vue/layers/dms-ui/app/components/PasswordStrength.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/activity/ActivityItem.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/banner/Banner.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/card/NavCard.vue +2 -2
- package/frontend-vue/layers/dms-ui/app/components/chart/Chart.vue +6 -16
- package/frontend-vue/layers/dms-ui/app/components/chart/ChartCard.vue +2 -2
- package/frontend-vue/layers/dms-ui/app/components/chart/internal/TrendBadge.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/copy/CopyButton.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/kpi/KpiCard.vue +3 -3
- package/frontend-vue/layers/dms-ui/app/components/master-detail/MasterDetail.vue +5 -1
- package/frontend-vue/layers/dms-ui/app/components/segmented/Segmented.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/status/StatusSummary.vue +1 -1
- package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +33 -10
- package/frontend-vue/layers/dms-ui/app/composables/chart/donutRecords.ts +26 -0
- package/frontend-vue/layers/dms-ui/app/composables/tab/types/props.ts +4 -2
- package/frontend-vue/layers/dms-ui/app/composables/tab/useTab.ts +3 -3
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/column.ts +1 -1
- package/frontend-vue/layers/dms-ui/app/composables/table-view/types/custom-button.ts +2 -0
- package/frontend-vue/layers/dms-ui/app/types/quick-actions.ts +38 -3
- package/frontend-vue/tests/admin-invite-email.test.ts +86 -0
- package/frontend-vue/tests/api-error-title.test.ts +24 -0
- package/frontend-vue/tests/auth-middleware-error.test.ts +58 -0
- package/frontend-vue/tests/breadcrumb-target.test.ts +50 -0
- package/frontend-vue/tests/button-disabled-theme.test.ts +21 -0
- package/frontend-vue/tests/chart-nested-donut.test.ts +97 -0
- package/frontend-vue/tests/error-page-message.test.ts +83 -0
- package/frontend-vue/tests/favorite-page.test.ts +104 -0
- package/frontend-vue/tests/icon-aria-hidden.test.ts +29 -0
- package/frontend-vue/tests/layout-banners.test.ts +224 -0
- package/frontend-vue/tests/menu-navigation.test.ts +39 -10
- package/frontend-vue/tests/notification-popover-errors.test.ts +147 -0
- package/frontend-vue/tests/onboarding-middleware.test.ts +103 -0
- package/frontend-vue/tests/password-strength-meter.test.ts +33 -0
- package/frontend-vue/tests/quick-action-intent.test.ts +74 -0
- package/frontend-vue/tests/quick-actions.test.ts +23 -0
- package/frontend-vue/tests/relation-badges.test.ts +32 -0
- package/frontend-vue/tests/signup-invitation-link.test.ts +126 -0
- package/frontend-vue/tests/skeleton-paragraph.test.ts +30 -0
- package/frontend-vue/tests/tab-without-component-id.test.ts +51 -0
- package/frontend-vue/tests/table-column-visibility.test.ts +20 -0
- package/frontend-vue/tests/user-language.test.ts +58 -0
- package/frontend-vue/tests/vue-inventory.test.ts +1 -1
- package/package.json +2 -2
- package/skills/dms/REFERENCE.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/members.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/members.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ class NotificationsApiController extends (0, interface_api_1.Controller)("/setti
|
|
|
97
97
|
}
|
|
98
98
|
exports.NotificationsApiController = NotificationsApiController;
|
|
99
99
|
__decorate([
|
|
100
|
-
(0, guards_1.AuthTenantMember)(),
|
|
100
|
+
(0, guards_1.AuthTenantMember)({ bypassTenantAccessGate: true }),
|
|
101
101
|
__metadata("design:type", Function)
|
|
102
102
|
], NotificationsApiController.prototype, "user", void 0);
|
|
103
103
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/notifications.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAOmC;AACnC,uEAA0E;AAC1E,6FAAkE;AAClE,6DAG0C;AAC1C,yDAA8E;AAE9E,kEAAwE;AACxE,oEAAwE;AACxE,oCAGqB;AACrB,kFAKoD;AACpD,mHAA6G;AAC7G,yCAA0C;AAGnC,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,IAAA,qBAAc,EACjE,eAAe,EACf;IACE,WAAW,EAAE,qBAAqB;IAClC,QAAQ,EAAE,uBAAY;IACtB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,0CAA0C;CACxD,EACD,IAAA,wBAAc,GAAE,CACjB;IACC,MAAM,CAAC,sBAAsB,GAAG,IAAA,wBAAe,EAC7C,0BAA0B,CAC3B,CAAC,IAAI,CAAC;QACL,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;;AAhBQ,0EAA+B;AAqBlC;IAHP,IAAA,+BAAsB,EACrB,+BAA+B,CAAC,sBAAsB,CACvD;;6DACkB;0CArBR,+BAA+B;IAD3C,IAAA,mBAAY,GAAE;GACF,+BAA+B,CAsB3C;AAED,MAAa,0BAA2B,SAAQ,IAAA,0BAAU,EACxD,8BAA8B,CAC/B;
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/notifications.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAOmC;AACnC,uEAA0E;AAC1E,6FAAkE;AAClE,6DAG0C;AAC1C,yDAA8E;AAE9E,kEAAwE;AACxE,oEAAwE;AACxE,oCAGqB;AACrB,kFAKoD;AACpD,mHAA6G;AAC7G,yCAA0C;AAGnC,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,IAAA,qBAAc,EACjE,eAAe,EACf;IACE,WAAW,EAAE,qBAAqB;IAClC,QAAQ,EAAE,uBAAY;IACtB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,0CAA0C;CACxD,EACD,IAAA,wBAAc,GAAE,CACjB;IACC,MAAM,CAAC,sBAAsB,GAAG,IAAA,wBAAe,EAC7C,0BAA0B,CAC3B,CAAC,IAAI,CAAC;QACL,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;;AAhBQ,0EAA+B;AAqBlC;IAHP,IAAA,+BAAsB,EACrB,+BAA+B,CAAC,sBAAsB,CACvD;;6DACkB;0CArBR,+BAA+B;IAD3C,IAAA,mBAAY,GAAE;GACF,+BAA+B,CAsB3C;AAED,MAAa,0BAA2B,SAAQ,IAAA,0BAAU,EACxD,8BAA8B,CAC/B;IAOO,AAAN,KAAK,CAAC,cAAc,CAElB,gBAAkD;QAElD,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,CAC/D,IAAI,CAAC,IAAI,CAAC,GAAG,CACd,CAAC;QACF,OAAO,WAAW,CAAC,WAAW,CAAC;IACjC,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB,CACT,IAAa,EAEzB,gBAAkD;QAElD,MAAM,WAAW,GAAG,IAAA,qCAAgB,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAC/C,wEAAiC,CAAC,KAAK,CAAC,CAAC,CAAC,CAC3C,CAAC;QAEF,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa;QACjB,MAAM,UAAU,GAAG,IAAA,2CAAuB,GAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAA,yCAAqB,GAAE,CAAC;QACzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAEpB,kBAA0C,EACb,UAAmB,EAClB,WAAoB;QAElD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,MAAM,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAElB,kBAA0C;QAE1C,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB,CAEpB,kBAA0C;QAE1C,OAAO,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CACY,EAAU,EAEpC,kBAA0C;QAE1C,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,IAAA,2BAAM,EAAC,YAAY,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;QAC1D,IAAA,2BAAM,EAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAEzE,MAAM,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,IAAA,4CAAwB,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CACI,EAAU,EAEpC,kBAA0C;QAE1C,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,IAAA,2BAAM,EAAC,YAAY,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;QAC1D,IAAA,2BAAM,EAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAEzE,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa,CAEjB,kBAA0C;QAE1C,MAAM,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,IAAA,+CAA2B,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAEb,kBAA0C;QAE1C,MAAM,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF;AAvHD,gEAuHC;AAjHS;IADP,IAAA,yBAAgB,EAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;;wDAChC;AAGb;IADL,IAAA,mBAAG,EAAC,cAAc,CAAC;IAEjB,WAAA,IAAA,qCAAK,EAAC,qCAAgC,CAAC,CAAA;;qCACtB,qCAAgC;;gEAMnD;AAGK;IADL,IAAA,mBAAG,EAAC,cAAc,CAAC;IAEjB,WAAA,IAAA,wBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,qCAAK,EAAC,qCAAgC,CAAC,CAAA;;6CACtB,qCAAgC;;mEAOnD;AAGK;IADL,IAAA,mBAAG,EAAC,aAAa,CAAC;;;;+DAKlB;AAGK;IADL,IAAA,mBAAG,EAAC,OAAO,CAAC;IAEV,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;IAE7B,WAAA,IAAA,yBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC3B,WAAA,IAAA,yBAAS,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;;qCAFT,2BAAsB;;kEAO3C;AAGK;IADL,IAAA,mBAAG,EAAC,eAAe,CAAC;IAElB,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;;qCACV,2BAAsB;;gEAI3C;AAGK;IADL,IAAA,mBAAG,EAAC,iBAAiB,CAAC;IAEpB,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;;qCACV,2BAAsB;;kEAG3C;AAGK;IADL,IAAA,mBAAG,EAAC,gBAAgB,CAAC;IAEnB,WAAA,IAAA,yBAAS,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;;6CACV,2BAAsB;;4DAU3C;AAGK;IADL,IAAA,sBAAM,EAAC,aAAa,CAAC;IAEnB,WAAA,IAAA,yBAAS,EAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;;6CACV,2BAAsB;;oEAS3C;AAGK;IADL,IAAA,mBAAG,EAAC,gBAAgB,CAAC;IAEnB,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;;qCACV,2BAAsB;;+DAM3C;AAGK;IADL,IAAA,sBAAM,EAAC,aAAa,CAAC;IAEnB,WAAA,IAAA,qCAAK,EAAC,2BAAsB,CAAC,CAAA;;qCACV,2BAAsB;;2DAK3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const inviteMemberQuickAction: import("@antelopejs/interface-dms").QuickActionInfo;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inviteMemberQuickAction = void 0;
|
|
4
|
+
const quick_actions_1 = require("@antelopejs/interface-dms/quick-actions");
|
|
5
|
+
const members_1 = require("./members");
|
|
6
|
+
const membersQuickActions = (0, quick_actions_1.QuickActionCategory)("dms-members", {
|
|
7
|
+
displayName: "$quickActions.category_members",
|
|
8
|
+
icon: "i-ph-users-three",
|
|
9
|
+
order: 50,
|
|
10
|
+
});
|
|
11
|
+
exports.inviteMemberQuickAction = (0, quick_actions_1.QuickAction)("dms-invite-member", {
|
|
12
|
+
category: membersQuickActions,
|
|
13
|
+
displayName: "$quickActions.invite_member",
|
|
14
|
+
icon: "i-ph-user-plus",
|
|
15
|
+
order: 10,
|
|
16
|
+
target: {
|
|
17
|
+
type: "button",
|
|
18
|
+
page: members_1.MembersSettingsController,
|
|
19
|
+
button: members_1.MEMBER_INVITE_BUTTON_ID,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=quick-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quick-actions.js","sourceRoot":"","sources":["../../../../src/pages/settings/users/quick-actions.ts"],"names":[],"mappings":";;;AAAA,2EAGiD;AACjD,uCAA+E;AAE/E,MAAM,mBAAmB,GAAG,IAAA,mCAAmB,EAAC,aAAa,EAAE;IAC7D,WAAW,EAAE,gCAAgC;IAC7C,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE;CACV,CAAC,CAAC;AAKU,QAAA,uBAAuB,GAAG,IAAA,2BAAW,EAAC,mBAAmB,EAAE;IACtE,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,6BAA6B;IAC1C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,mCAAyB;QAC/B,MAAM,EAAE,iCAAuB;KAChC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AuthConfig } from "../../config";
|
|
2
|
+
export interface ClientAddressSource {
|
|
3
|
+
socketAddress: string | undefined;
|
|
4
|
+
forwardedFor: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare function resolveClientIp(source: ClientAddressSource, trustedProxies: number): string;
|
|
7
|
+
export declare function trustedProxyCount(authConfig: AuthConfig): number;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveClientIp = resolveClientIp;
|
|
4
|
+
exports.trustedProxyCount = trustedProxyCount;
|
|
5
|
+
const node_net_1 = require("node:net");
|
|
6
|
+
const FORWARDED_FOR_SEPARATOR = ",";
|
|
7
|
+
const IPV4_MAPPED_PREFIX = "::ffff:";
|
|
8
|
+
const NO_TRUSTED_PROXY = 0;
|
|
9
|
+
const LEGACY_TRUST_PROXY_HOPS = 1;
|
|
10
|
+
function normalizeAddress(address) {
|
|
11
|
+
const unmapped = address.slice(IPV4_MAPPED_PREFIX.length);
|
|
12
|
+
const isMappedIPv4 = address.toLowerCase().startsWith(IPV4_MAPPED_PREFIX) && (0, node_net_1.isIPv4)(unmapped);
|
|
13
|
+
return isMappedIPv4 ? unmapped : address;
|
|
14
|
+
}
|
|
15
|
+
function forwardedAddressesNearestFirst(forwardedFor) {
|
|
16
|
+
return (forwardedFor ?? "")
|
|
17
|
+
.split(FORWARDED_FOR_SEPARATOR)
|
|
18
|
+
.map((entry) => entry.trim())
|
|
19
|
+
.filter(Boolean)
|
|
20
|
+
.reverse();
|
|
21
|
+
}
|
|
22
|
+
function resolveClientIp(source, trustedProxies) {
|
|
23
|
+
const addresses = [
|
|
24
|
+
source.socketAddress ?? "",
|
|
25
|
+
...forwardedAddressesNearestFirst(source.forwardedFor),
|
|
26
|
+
];
|
|
27
|
+
const index = Math.min(trustedProxies, addresses.length - 1);
|
|
28
|
+
return normalizeAddress(addresses[index]);
|
|
29
|
+
}
|
|
30
|
+
function isProxyCount(value) {
|
|
31
|
+
return (typeof value === "number" &&
|
|
32
|
+
Number.isSafeInteger(value) &&
|
|
33
|
+
value >= NO_TRUSTED_PROXY);
|
|
34
|
+
}
|
|
35
|
+
function trustedProxyCount(authConfig) {
|
|
36
|
+
if (isProxyCount(authConfig.trustedProxies))
|
|
37
|
+
return authConfig.trustedProxies;
|
|
38
|
+
return authConfig.oauth?.trustProxy
|
|
39
|
+
? LEGACY_TRUST_PROXY_HOPS
|
|
40
|
+
: NO_TRUSTED_PROXY;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=client-ip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-ip.js","sourceRoot":"","sources":["../../../src/routes/auth/client-ip.ts"],"names":[],"mappings":";;AAmDA,0CAUC;AAiBD,8CAKC;AAnFD,uCAAkC;AAGlC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAclC,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,YAAY,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,IAAA,iBAAM,EAAC,QAAQ,CAAC,CAAC;IAC3E,OAAO,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3C,CAAC;AAED,SAAS,8BAA8B,CACrC,YAAgC;IAEhC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;SACxB,KAAK,CAAC,uBAAuB,CAAC;SAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,OAAO,CAAC;SACf,OAAO,EAAE,CAAC;AACf,CAAC;AAgBD,SAAgB,eAAe,CAC7B,MAA2B,EAC3B,cAAsB;IAEtB,MAAM,SAAS,GAAG;QAChB,MAAM,CAAC,aAAa,IAAI,EAAE;QAC1B,GAAG,8BAA8B,CAAC,MAAM,CAAC,YAAY,CAAC;KACvD,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3B,KAAK,IAAI,gBAAgB,CAC1B,CAAC;AACJ,CAAC;AASD,SAAgB,iBAAiB,CAAC,UAAsB;IACtD,IAAI,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,UAAU,CAAC,cAAc,CAAC;IAC9E,OAAO,UAAU,CAAC,KAAK,EAAE,UAAU;QACjC,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,gBAAgB,CAAC;AACvB,CAAC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./client-ip"), exports);
|
|
17
18
|
__exportStar(require("./forgot-password"), exports);
|
|
18
19
|
__exportStar(require("./login"), exports);
|
|
19
20
|
__exportStar(require("./logout"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,0CAAwB;AACxB,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,4CAA0B;AAC1B,sDAAoC;AACpC,+DAA6C;AAC7C,mDAAiC;AACjC,qDAAmC;AACnC,2CAAyB;AACzB,kDAAgC;AAChC,0CAAwB;AACxB,mEAAiD;AACjD,+CAA6B;AAC7B,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,oDAAkC;AAClC,0CAAwB;AACxB,2CAAyB;AACzB,uCAAqB;AACrB,0CAAwB;AACxB,4CAA0B;AAC1B,sDAAoC;AACpC,+DAA6C;AAC7C,mDAAiC;AACjC,qDAAmC;AACnC,2CAAyB;AACzB,kDAAgC;AAChC,0CAAwB;AACxB,mEAAiD;AACjD,+CAA6B;AAC7B,iDAA+B"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type UserInvite } from "@antelopejs/interface-dms/db";
|
|
1
2
|
import type { SessionModel, UserModel } from "@antelopejs/interface-dms/auth/db";
|
|
2
3
|
import type { AuthResponse } from "./types";
|
|
4
|
+
export declare function signupLanguage(lang: string | undefined, invite: UserInvite): string;
|
|
3
5
|
export declare function signup(userModel: UserModel, sessionModel: SessionModel, body: unknown, userAgent: string, ip: string): Promise<AuthResponse>;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.signupLanguage = signupLanguage;
|
|
6
7
|
exports.signup = signup;
|
|
7
8
|
const interface_api_util_1 = require("@antelopejs/interface-api-util");
|
|
8
9
|
const interface_database_1 = require("@antelopejs/interface-database");
|
|
@@ -17,6 +18,7 @@ const auth_schema_1 = require("../../validation/auth.schema");
|
|
|
17
18
|
const invite_1 = require("./invite");
|
|
18
19
|
const session_response_1 = require("./session-response");
|
|
19
20
|
const VALIDATION_TOKEN_LENGTH = 6;
|
|
21
|
+
const DEFAULT_LANGUAGE = "en";
|
|
20
22
|
function buildValidationFields(invite) {
|
|
21
23
|
const config = (0, config_1.getAuthConfig)();
|
|
22
24
|
const shouldValidate = config.mustValidateEmail && !invite.skipEmailValidation;
|
|
@@ -31,6 +33,9 @@ function buildValidationFields(invite) {
|
|
|
31
33
|
validationRequestedAt: shouldValidate ? new Date() : undefined,
|
|
32
34
|
};
|
|
33
35
|
}
|
|
36
|
+
function signupLanguage(lang, invite) {
|
|
37
|
+
return lang || invite.language || DEFAULT_LANGUAGE;
|
|
38
|
+
}
|
|
34
39
|
async function createNewUser(userModel, { name, email, password, lang, invite }) {
|
|
35
40
|
const validation = buildValidationFields(invite);
|
|
36
41
|
const result = await userModel.insert({
|
|
@@ -42,7 +47,7 @@ async function createNewUser(userModel, { name, email, password, lang, invite })
|
|
|
42
47
|
authKey: (0, auth_key_1.generateAuthKey)(),
|
|
43
48
|
...validation,
|
|
44
49
|
owner: false,
|
|
45
|
-
language: lang
|
|
50
|
+
language: signupLanguage(lang, invite),
|
|
46
51
|
});
|
|
47
52
|
return result?.[0];
|
|
48
53
|
}
|
|
@@ -57,7 +62,7 @@ async function overwriteUnvalidatedUser(userModel, existingUser, { name, email,
|
|
|
57
62
|
existingUser.validationToken = validation.validationToken;
|
|
58
63
|
existingUser.validationRequestedAt = validation.validationRequestedAt;
|
|
59
64
|
existingUser.isValidated = validation.isValidated;
|
|
60
|
-
existingUser.language = lang
|
|
65
|
+
existingUser.language = signupLanguage(lang, invite);
|
|
61
66
|
await userModel.update(existingUser);
|
|
62
67
|
return existingUser._id;
|
|
63
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/routes/auth/signup.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/routes/auth/signup.ts"],"names":[],"mappings":";;;;;AAgDA,wCAKC;AA2GD,wBAqDC;AArND,uEAA0E;AAC1E,uEAAgE;AAChE,6FAAqE;AACrE,qDAGsC;AACtC,yDAGwC;AAKxC,gEAAwC;AACxC,yCAA6C;AAC7C,mDAAuD;AACvD,qFAAgF;AAChF,8DAA0D;AAC1D,qCAA6D;AAC7D,yDAAuD;AAGvD,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,SAAS,qBAAqB,CAAC,MAAkB;IAC/C,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;IAC/B,MAAM,cAAc,GAClB,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAE1D,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;QAChD,eAAe,EAAE,cAAc;YAC7B,CAAC,CAAC,sBAAY,CAAC,QAAQ,CAAC;gBACpB,MAAM,EAAE,uBAAuB;gBAC/B,cAAc,EAAE,WAAW;aAC5B,CAAC;YACJ,CAAC,CAAC,SAAS;QACb,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;AACJ,CAAC;AAMD,SAAgB,cAAc,CAC5B,IAAwB,EACxB,MAAkB;IAElB,OAAO,IAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC;AACrD,CAAC;AAYD,KAAK,UAAU,aAAa,CAC1B,SAAoB,EACpB,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAiB;IAEtD,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QACpC,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1B,QAAQ;QACR,OAAO,EAAE,IAAA,0BAAe,GAAE;QAC1B,GAAG,UAAU;QACb,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;KACvC,CAAC,CAAC;IACH,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,SAAoB,EACpB,YAAgE,EAChE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAiB;IAEtD,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACpC,YAAY,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACpC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACzC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,YAAY,CAAC,OAAO,GAAG,IAAA,0BAAe,GAAE,CAAC;IACzC,YAAY,CAAC,eAAe,GAAG,UAAU,CAAC,eAAyB,CAAC;IACpE,YAAY,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAA6B,CAAC;IAC9E,YAAY,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAClD,YAAY,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAErD,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,YAAY,CAAC,GAAG,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAAoB,EACpB,YAA0D,EAC1D,OAAsB;IAEtB,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,MAAM,wBAAwB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC;QAClE,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE5C,IAAA,2BAAM,EAAC,MAAM,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,IAAA,2BAAM,EAAC,IAAI,EAAE,GAAG,EAAE,6BAA6B,MAAM,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAuBD,KAAK,UAAU,0BAA0B,CACvC,SAAoB,EACpB,KAAa;IAEb,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,MAAM,kBAAkB,GACtB,CAAC,CAAC,YAAY;QACd,CAAC,MAAM,IAAA,wCAAQ,EAAC,sBAAiB,EAAE,mCAAc,CAAC,CAAC,YAAY,CAC7D,YAAY,CAAC,GAAG,CACjB,CAAC,CAAC;IACL,IAAA,2BAAM,EACJ,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,kBAAkB,CAAC,EACnE,GAAG,EACH,0BAA0B,CAC3B,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC;AAEM,KAAK,UAAU,MAAM,CAC1B,SAAoB,EACpB,YAA0B,EAC1B,IAAa,EACb,SAAiB,EACjB,EAAU;IAEV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,qCAAgB,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAC1E,wBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC3B,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;IAM/B,MAAM,cAAc,GAAG,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAE5D,MAAM,YAAY,GAAG,MAAM,0BAA0B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE;QAC3D,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IAEH,MAAM,IAAA,sBAAa,EAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,IAAA,2BAAM,EAAC,aAAa,EAAE,GAAG,EAAE,6BAA6B,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpE,MAAM,oBAAoB,GACxB,MAAM,CAAC,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;IAClE,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAA,+BAAa,EACX,IAAA,+BAAwB,EAAC,aAAa,CAAC,EACvC,wBAAwB,aAAa,CAAC,KAAK,GAAG,CAC/C,CAAC;IACJ,CAAC;IAED,MAAM,IAAA,2BAAoB,EAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE/D,OAAO,IAAA,oCAAiB,EACtB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,EAAE,CACH,CAAC;AACJ,CAAC"}
|
package/dist/routes/auth.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RequestContext } from "@antelopejs/interface-api";
|
|
1
2
|
import { SessionModel, type User, UserModel } from "@antelopejs/interface-dms/auth/db";
|
|
2
3
|
import type { OAuthAuthorizeUrl } from "./auth/oauth";
|
|
3
4
|
import type { LoginOutcome } from "./auth/session-response";
|
|
@@ -9,6 +10,8 @@ export declare class AuthController extends AuthController_base {
|
|
|
9
10
|
userAgent: string;
|
|
10
11
|
forwardedFor: string;
|
|
11
12
|
oauthRelayHeader: string;
|
|
13
|
+
requestContext: RequestContext;
|
|
14
|
+
private get clientIp();
|
|
12
15
|
signup(body: unknown): Promise<AuthResponse>;
|
|
13
16
|
login(body: unknown): Promise<AuthResponse | TwoFactorRequiredResponse | TenantAssignmentRequiredResponse>;
|
|
14
17
|
oauthAuthorizeUrl(provider: string): OAuthAuthorizeUrl;
|
package/dist/routes/auth.js
CHANGED
|
@@ -50,13 +50,20 @@ const interface_api_1 = require("@antelopejs/interface-api");
|
|
|
50
50
|
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
51
51
|
const auth_1 = require("@antelopejs/interface-dms/auth");
|
|
52
52
|
const db_1 = require("@antelopejs/interface-dms/auth/db");
|
|
53
|
+
const config_1 = require("../config");
|
|
53
54
|
const authRoutes = __importStar(require("./auth/index"));
|
|
54
55
|
class AuthController extends (0, interface_api_1.Controller)("/api/auth") {
|
|
56
|
+
get clientIp() {
|
|
57
|
+
return authRoutes.resolveClientIp({
|
|
58
|
+
socketAddress: this.requestContext.rawRequest.socket.remoteAddress,
|
|
59
|
+
forwardedFor: this.forwardedFor,
|
|
60
|
+
}, authRoutes.trustedProxyCount((0, config_1.getAuthConfig)()));
|
|
61
|
+
}
|
|
55
62
|
signup(body) {
|
|
56
|
-
return authRoutes.signup(this.userModel, this.sessionModel, body, this.userAgent || "", this.
|
|
63
|
+
return authRoutes.signup(this.userModel, this.sessionModel, body, this.userAgent || "", this.clientIp);
|
|
57
64
|
}
|
|
58
65
|
login(body) {
|
|
59
|
-
return authRoutes.login(this.userModel, this.sessionModel, body, this.userAgent || "", this.
|
|
66
|
+
return authRoutes.login(this.userModel, this.sessionModel, body, this.userAgent || "", this.clientIp);
|
|
60
67
|
}
|
|
61
68
|
oauthAuthorizeUrl(provider) {
|
|
62
69
|
authRoutes.assertOAuthRelay(this.oauthRelayHeader);
|
|
@@ -70,11 +77,11 @@ class AuthController extends (0, interface_api_1.Controller)("/api/auth") {
|
|
|
70
77
|
providerId: provider,
|
|
71
78
|
body,
|
|
72
79
|
userAgent: this.userAgent || "",
|
|
73
|
-
ip: this.
|
|
80
|
+
ip: this.clientIp,
|
|
74
81
|
});
|
|
75
82
|
}
|
|
76
83
|
verify2FA(body) {
|
|
77
|
-
return authRoutes.verify2FA(this.userModel, this.sessionModel, body, this.userAgent || "", this.
|
|
84
|
+
return authRoutes.verify2FA(this.userModel, this.sessionModel, body, this.userAgent || "", this.clientIp);
|
|
78
85
|
}
|
|
79
86
|
request2FAEmail(body) {
|
|
80
87
|
return authRoutes.request2FAEmail(this.userModel, body);
|
|
@@ -128,6 +135,10 @@ __decorate([
|
|
|
128
135
|
(0, interface_api_1.Parameter)("x-dms-oauth-relay", "header"),
|
|
129
136
|
__metadata("design:type", String)
|
|
130
137
|
], AuthController.prototype, "oauthRelayHeader", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
(0, interface_api_1.Context)(),
|
|
140
|
+
__metadata("design:type", Object)
|
|
141
|
+
], AuthController.prototype, "requestContext", void 0);
|
|
131
142
|
__decorate([
|
|
132
143
|
(0, interface_api_1.Post)("/signup"),
|
|
133
144
|
__param(0, (0, interface_api_1.JSONBody)()),
|
package/dist/routes/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAQmC;AACnC,6FAAkE;AAClE,yDAA6D;AAC7D,0DAI2C;AAC3C,sCAA0C;AAC1C,yDAA2C;AAS3C,MAAa,cAAe,SAAQ,IAAA,0BAAU,EAAC,WAAW,CAAC;IAmBzD,IAAY,QAAQ;QAClB,OAAO,UAAU,CAAC,eAAe,CAC/B;YACE,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa;YAClE,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,EACD,UAAU,CAAC,iBAAiB,CAAC,IAAA,sBAAa,GAAE,CAAC,CAC9C,CAAC;IACJ,CAAC;IAGD,MAAM,CAAa,IAAa;QAC9B,OAAO,UAAU,CAAC,MAAM,CACtB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,IAAI,EACJ,IAAI,CAAC,SAAS,IAAI,EAAE,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAGD,KAAK,CACS,IAAa;QAIzB,OAAO,UAAU,CAAC,KAAK,CACrB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,IAAI,EACJ,IAAI,CAAC,SAAS,IAAI,EAAE,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAGD,iBAAiB,CACQ,QAAgB;QAEvC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAGD,aAAa,CACY,QAAgB,EAC3B,IAAa;QAEzB,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,aAAa,CAAC;YAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,QAAQ;YACpB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;YAC/B,EAAE,EAAE,IAAI,CAAC,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IAGD,SAAS,CAAa,IAAa;QACjC,OAAO,UAAU,CAAC,SAAS,CACzB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,IAAI,EACJ,IAAI,CAAC,SAAS,IAAI,EAAE,EACpB,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAGD,eAAe,CAAa,IAAa;QACvC,OAAO,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAGD,OAAO,CAAa,IAAa;QAC/B,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAGD,YAAY,CAAa,IAAa;QACpC,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAGD,EAAE,CAAgB,IAAU;QAC1B,OAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAGD,MAAM,CAAgB,IAAU,EAAc,IAAa;QACzD,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAGD,WAAW,CACM,IAAU,EACb,IAAa;QAEzB,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAGD,wBAAwB,CAAgB,IAAU;QAChD,OAAO,UAAU,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAGD,cAAc,CAAa,IAAa;QACtC,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAGD,2BAA2B,CAAa,IAAa;QACnD,OAAO,UAAU,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAGD,aAAa,CAAa,IAAa;QACrC,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACF;AA9ID,wCA8IC;AA5IS;IADP,IAAA,qCAAK,EAAC,cAAS,CAAC;8BACE,cAAS;iDAAC;AAGrB;IADP,IAAA,qCAAK,EAAC,iBAAY,CAAC;8BACE,iBAAY;oDAAC;AAG3B;IADP,IAAA,yBAAS,EAAC,YAAY,EAAE,QAAQ,CAAC;;iDACR;AAGlB;IADP,IAAA,yBAAS,EAAC,iBAAiB,EAAE,QAAQ,CAAC;;oDACV;AAGrB;IADP,IAAA,yBAAS,EAAC,mBAAmB,EAAE,QAAQ,CAAC;;wDACR;AAGzB;IADP,IAAA,uBAAO,GAAE;;sDAC6B;AAavC;IADC,IAAA,oBAAI,EAAC,SAAS,CAAC;IACR,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;4CAQjB;AAGD;IADC,IAAA,oBAAI,EAAC,QAAQ,CAAC;IAEZ,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;2CAWZ;AAGD;IADC,IAAA,mBAAG,EAAC,gCAAgC,CAAC;IAEnC,WAAA,IAAA,yBAAS,EAAC,UAAU,CAAC,CAAA;;;;uDAIvB;AAGD;IADC,IAAA,oBAAI,EAAC,2BAA2B,CAAC;IAE/B,WAAA,IAAA,yBAAS,EAAC,UAAU,CAAC,CAAA;IACrB,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;mDAWZ;AAGD;IADC,IAAA,oBAAI,EAAC,aAAa,CAAC;IACT,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;+CAQpB;AAGD;IADC,IAAA,oBAAI,EAAC,oBAAoB,CAAC;IACV,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;qDAE1B;AAGD;IADC,IAAA,oBAAI,EAAC,UAAU,CAAC;IACR,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;6CAElB;AAGD;IADC,IAAA,oBAAI,EAAC,gBAAgB,CAAC;IACT,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;kDAEvB;AAGD;IADC,IAAA,mBAAG,EAAC,KAAK,CAAC;IACP,WAAA,IAAA,kBAAW,GAAE,CAAA;;;;wCAEhB;AAGD;IADC,IAAA,oBAAI,EAAC,SAAS,CAAC;IACR,WAAA,IAAA,kBAAW,GAAE,CAAA;IAAc,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;4CAE5C;AAGD;IADC,IAAA,oBAAI,EAAC,eAAe,CAAC;IAEnB,WAAA,IAAA,kBAAW,GAAE,CAAA;IACb,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;iDAGZ;AAGD;IADC,IAAA,mBAAG,EAAC,6BAA6B,CAAC;IACT,WAAA,IAAA,kBAAW,GAAE,CAAA;;;;8DAEtC;AAGD;IADC,IAAA,oBAAI,EAAC,kBAAkB,CAAC;IACT,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;oDAEzB;AAGD;IADC,IAAA,oBAAI,EAAC,iCAAiC,CAAC;IACX,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;iEAEtC;AAGD;IADC,IAAA,oBAAI,EAAC,iBAAiB,CAAC;IACT,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;mDAExB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const http_1 = require("../../helpers/http");
|
|
5
|
+
const LOGIN_URL = "/api/auth/login";
|
|
6
|
+
const UNAUTHORIZED_STATUS = 401;
|
|
7
|
+
describe("[integration] auth client address", () => {
|
|
8
|
+
it("resolves the address of a login carrying a forged x-forwarded-for", async () => {
|
|
9
|
+
const client = (0, http_1.createClient)();
|
|
10
|
+
const response = await client.post(LOGIN_URL, { email: "nobody@test.local", password: "WrongPassw0rd!" }, { headers: { "x-forwarded-for": "6.6.6.6, 7.7.7.7" } });
|
|
11
|
+
(0, chai_1.expect)(response.status).to.equal(UNAUTHORIZED_STATUS);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=client-ip.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-ip.test.js","sourceRoot":"","sources":["../../../../src/test/integration/auth/client-ip.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,6CAAkD;AAElD,MAAM,SAAS,GAAG,iBAAiB,CAAC;AACpC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAIhC,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,MAAM,GAAG,IAAA,mBAAY,GAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,SAAS,EACT,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAC1D,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,EAAE,CACvD,CAAC;QAEF,IAAA,aAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_assert_1 = require("node:assert");
|
|
4
|
+
const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const db_1 = require("@antelopejs/interface-dms/db");
|
|
7
|
+
const invite_resolution_1 = require("@antelopejs/interface-dms/invite-resolution");
|
|
8
|
+
const registry_1 = require("@antelopejs/interface-dms/invite-extensions/registry");
|
|
9
|
+
const form_1 = require("@antelopejs/interface-dms/base/form");
|
|
10
|
+
const invite_extension_routes_1 = require("../../pages/settings/users/invite-extension-routes");
|
|
11
|
+
const db_2 = require("../helpers/db");
|
|
12
|
+
const TENANT = "invite-extension-edit-tenant";
|
|
13
|
+
const INVITE_ID = "pending-invite";
|
|
14
|
+
const FUTURE_MS = 60_000;
|
|
15
|
+
function plain(value) {
|
|
16
|
+
return JSON.parse(JSON.stringify(value));
|
|
17
|
+
}
|
|
18
|
+
describe("Pending invite edit with extension payloads (MongoDB adapter)", () => {
|
|
19
|
+
let invites;
|
|
20
|
+
let updates;
|
|
21
|
+
let rowWrites;
|
|
22
|
+
const writeRow = async () => {
|
|
23
|
+
rowWrites += 1;
|
|
24
|
+
};
|
|
25
|
+
async function storedExtensions() {
|
|
26
|
+
return plain((await invites.get(INVITE_ID))?.extensions);
|
|
27
|
+
}
|
|
28
|
+
beforeEach(async () => {
|
|
29
|
+
await (0, db_2.resetDatabase)();
|
|
30
|
+
registry_1.internal.clearInviteExtensions();
|
|
31
|
+
updates = [];
|
|
32
|
+
rowWrites = 0;
|
|
33
|
+
registry_1.internal.applyInviteExtension({
|
|
34
|
+
key: "scope",
|
|
35
|
+
component: (0, form_1.Form)({ fields: [] }),
|
|
36
|
+
schema: zod_1.z.object({ access: zod_1.z.enum(["all", "some"]) }),
|
|
37
|
+
placement: { side: "end", order: 0 },
|
|
38
|
+
onAccept: () => undefined,
|
|
39
|
+
onUpdate: (payload, previous, context) => {
|
|
40
|
+
updates.push({
|
|
41
|
+
payload: plain(payload),
|
|
42
|
+
previous: plain(previous),
|
|
43
|
+
context: plain(context),
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
registry_1.internal.applyInviteExtension({
|
|
48
|
+
key: "frozen",
|
|
49
|
+
component: (0, form_1.Form)({ fields: [] }),
|
|
50
|
+
schema: zod_1.z.object({ value: zod_1.z.string() }),
|
|
51
|
+
placement: { side: "end", order: 0 },
|
|
52
|
+
editable: false,
|
|
53
|
+
onAccept: () => undefined,
|
|
54
|
+
});
|
|
55
|
+
invites = (0, interface_database_decorators_1.GetModel)(db_1.UserInviteModel, TENANT);
|
|
56
|
+
await invites.insert({
|
|
57
|
+
_id: INVITE_ID,
|
|
58
|
+
token: "pending-token",
|
|
59
|
+
email: "pending@example.test",
|
|
60
|
+
firstname: null,
|
|
61
|
+
lastname: null,
|
|
62
|
+
language: "en",
|
|
63
|
+
roles_ids: [],
|
|
64
|
+
asTenantOwner: false,
|
|
65
|
+
expiresAt: new Date(Date.now() + FUTURE_MS),
|
|
66
|
+
skipEmailValidation: false,
|
|
67
|
+
extensions: {
|
|
68
|
+
scope: { access: "all" },
|
|
69
|
+
frozen: { value: "kept" },
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
afterEach(() => registry_1.internal.clearInviteExtensions());
|
|
74
|
+
it("stores the edited payload and tells its extension", async () => {
|
|
75
|
+
await (0, invite_extension_routes_1.editPendingInvite)(TENANT, INVITE_ID, { firstname: "Ada", scope__access: "some", frozen__value: "changed" }, writeRow);
|
|
76
|
+
node_assert_1.strict.equal(rowWrites, 1);
|
|
77
|
+
node_assert_1.strict.deepEqual(await storedExtensions(), {
|
|
78
|
+
scope: { access: "some" },
|
|
79
|
+
frozen: { value: "kept" },
|
|
80
|
+
});
|
|
81
|
+
node_assert_1.strict.deepEqual(updates, [
|
|
82
|
+
{
|
|
83
|
+
payload: { access: "some" },
|
|
84
|
+
previous: { access: "all" },
|
|
85
|
+
context: {
|
|
86
|
+
tenantId: TENANT,
|
|
87
|
+
email: "pending@example.test",
|
|
88
|
+
inviteId: INVITE_ID,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
]);
|
|
92
|
+
});
|
|
93
|
+
it("leaves the payloads alone when the submission carries none", async () => {
|
|
94
|
+
await (0, invite_extension_routes_1.editPendingInvite)(TENANT, INVITE_ID, { firstname: "Ada" }, writeRow);
|
|
95
|
+
node_assert_1.strict.equal(rowWrites, 1);
|
|
96
|
+
node_assert_1.strict.deepEqual(await storedExtensions(), {
|
|
97
|
+
scope: { access: "all" },
|
|
98
|
+
frozen: { value: "kept" },
|
|
99
|
+
});
|
|
100
|
+
node_assert_1.strict.deepEqual(updates, []);
|
|
101
|
+
});
|
|
102
|
+
it("refuses an invalid payload before writing anything", async () => {
|
|
103
|
+
await node_assert_1.strict.rejects((0, invite_extension_routes_1.editPendingInvite)(TENANT, INVITE_ID, { scope__access: "none" }, writeRow));
|
|
104
|
+
node_assert_1.strict.equal(rowWrites, 0);
|
|
105
|
+
node_assert_1.strict.deepEqual(await storedExtensions(), {
|
|
106
|
+
scope: { access: "all" },
|
|
107
|
+
frozen: { value: "kept" },
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
it("refuses an invitation already decided", async () => {
|
|
111
|
+
const invite = await invites.get(INVITE_ID);
|
|
112
|
+
node_assert_1.strict.ok(invite);
|
|
113
|
+
await (0, invite_resolution_1.decideInvite)({ tenantId: TENANT, invite, reason: "cancelled" });
|
|
114
|
+
await node_assert_1.strict.rejects((0, invite_extension_routes_1.editPendingInvite)(TENANT, INVITE_ID, { scope__access: "some" }, writeRow));
|
|
115
|
+
node_assert_1.strict.equal(rowWrites, 0);
|
|
116
|
+
});
|
|
117
|
+
it("refuses an invitation that does not exist", async () => {
|
|
118
|
+
await node_assert_1.strict.rejects((0, invite_extension_routes_1.editPendingInvite)(TENANT, "missing", { scope__access: "some" }, writeRow));
|
|
119
|
+
node_assert_1.strict.equal(rowWrites, 0);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=invite-extension-edit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-extension-edit.test.js","sourceRoot":"","sources":["../../../src/test/integration/invite-extension-edit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const jsonwebtoken_1 = require("jsonwebtoken");
|
|
5
|
+
const auth_1 = require("../helpers/auth");
|
|
6
|
+
const http_1 = require("../helpers/http");
|
|
7
|
+
const HTTP_OK = 200;
|
|
8
|
+
const HTTP_UNAUTHORIZED = 401;
|
|
9
|
+
const SESSION_EXPIRED_ERROR = "error.session_expired";
|
|
10
|
+
const FOREIGN_SECRET = "not-the-dms-secret";
|
|
11
|
+
function rejectedToken() {
|
|
12
|
+
return (0, jsonwebtoken_1.sign)({ id: "missing-user", tenantId: "default", purpose: "access" }, FOREIGN_SECRET);
|
|
13
|
+
}
|
|
14
|
+
async function findPage(client, matches) {
|
|
15
|
+
const response = await client.get("/dms/sitelayout");
|
|
16
|
+
const route = Object.values(response.data.siteLayout.pages).find(matches);
|
|
17
|
+
if (!route)
|
|
18
|
+
throw new Error("no registered page matches");
|
|
19
|
+
return route.fullSlug;
|
|
20
|
+
}
|
|
21
|
+
function fetchPage(client, path) {
|
|
22
|
+
return client.get("/dms/page", { params: { path, shared: "false" } });
|
|
23
|
+
}
|
|
24
|
+
describe("[integration] dms page with a stale session", () => {
|
|
25
|
+
let anonymous;
|
|
26
|
+
let privatePath;
|
|
27
|
+
let publicPath;
|
|
28
|
+
before(async () => {
|
|
29
|
+
anonymous = (0, http_1.createClient)();
|
|
30
|
+
privatePath = await findPage(anonymous, (route) => route.hasAccess === false && !route.publicAccess);
|
|
31
|
+
publicPath = await findPage(anonymous, (route) => !!route.publicAccess);
|
|
32
|
+
});
|
|
33
|
+
it("keeps serving a denied private page to an anonymous visitor", async () => {
|
|
34
|
+
const response = await fetchPage(anonymous, privatePath);
|
|
35
|
+
(0, chai_1.expect)(response.status).to.equal(HTTP_OK);
|
|
36
|
+
(0, chai_1.expect)(response.data.route.hasAccess).to.equal(false);
|
|
37
|
+
});
|
|
38
|
+
it("answers 401 when a rejected bearer is what denies the page", async () => {
|
|
39
|
+
const response = await fetchPage((0, auth_1.authorizedClient)(rejectedToken()), privatePath);
|
|
40
|
+
(0, chai_1.expect)(response.status).to.equal(HTTP_UNAUTHORIZED);
|
|
41
|
+
(0, chai_1.expect)(response.data).to.equal(SESSION_EXPIRED_ERROR);
|
|
42
|
+
});
|
|
43
|
+
it("answers 401 for a bearer that is not a token at all", async () => {
|
|
44
|
+
const response = await fetchPage((0, auth_1.authorizedClient)("garbage"), privatePath);
|
|
45
|
+
(0, chai_1.expect)(response.status).to.equal(HTTP_UNAUTHORIZED);
|
|
46
|
+
});
|
|
47
|
+
it("still serves a public page to a rejected bearer", async () => {
|
|
48
|
+
const response = await fetchPage((0, auth_1.authorizedClient)(rejectedToken()), publicPath);
|
|
49
|
+
(0, chai_1.expect)(response.status).to.equal(HTTP_OK);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=page-session.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-session.test.js","sourceRoot":"","sources":["../../../src/test/integration/page-session.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|