@open-mercato/core 0.4.8-develop-28cee031d6 → 0.4.8-develop-15259be22b
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/agentic/standalone-guide.md +235 -0
- package/dist/generated/entities/customer_role/index.js +27 -0
- package/dist/generated/entities/customer_role/index.js.map +7 -0
- package/dist/generated/entities/customer_role_acl/index.js +19 -0
- package/dist/generated/entities/customer_role_acl/index.js.map +7 -0
- package/dist/generated/entities/customer_user/index.js +37 -0
- package/dist/generated/entities/customer_user/index.js.map +7 -0
- package/dist/generated/entities/customer_user_acl/index.js +19 -0
- package/dist/generated/entities/customer_user_acl/index.js.map +7 -0
- package/dist/generated/entities/customer_user_email_verification/index.js +17 -0
- package/dist/generated/entities/customer_user_email_verification/index.js.map +7 -0
- package/dist/generated/entities/customer_user_invitation/index.js +33 -0
- package/dist/generated/entities/customer_user_invitation/index.js.map +7 -0
- package/dist/generated/entities/customer_user_password_reset/index.js +15 -0
- package/dist/generated/entities/customer_user_password_reset/index.js.map +7 -0
- package/dist/generated/entities/customer_user_role/index.js +13 -0
- package/dist/generated/entities/customer_user_role/index.js.map +7 -0
- package/dist/generated/entities/customer_user_session/index.js +21 -0
- package/dist/generated/entities/customer_user_session/index.js.map +7 -0
- package/dist/generated/entities/organization/index.js +2 -0
- package/dist/generated/entities/organization/index.js.map +2 -2
- package/dist/generated/entities.ids.generated.js +14 -1
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +18 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/modules/auth/services/rbacService.js +3 -9
- package/dist/modules/auth/services/rbacService.js.map +2 -2
- package/dist/modules/customer_accounts/acl.js +12 -0
- package/dist/modules/customer_accounts/acl.js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/roles/[id]/acl.js +87 -0
- package/dist/modules/customer_accounts/api/admin/roles/[id]/acl.js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/roles/[id].js +216 -0
- package/dist/modules/customer_accounts/api/admin/roles/[id].js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/roles.js +189 -0
- package/dist/modules/customer_accounts/api/admin/roles.js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/users/[id]/reset-password.js +69 -0
- package/dist/modules/customer_accounts/api/admin/users/[id]/reset-password.js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/users/[id]/verify-email.js +64 -0
- package/dist/modules/customer_accounts/api/admin/users/[id]/verify-email.js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/users/[id].js +253 -0
- package/dist/modules/customer_accounts/api/admin/users/[id].js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/users-invite.js +78 -0
- package/dist/modules/customer_accounts/api/admin/users-invite.js.map +7 -0
- package/dist/modules/customer_accounts/api/admin/users.js +251 -0
- package/dist/modules/customer_accounts/api/admin/users.js.map +7 -0
- package/dist/modules/customer_accounts/api/email/verify.js +59 -0
- package/dist/modules/customer_accounts/api/email/verify.js.map +7 -0
- package/dist/modules/customer_accounts/api/interceptors.js +5 -0
- package/dist/modules/customer_accounts/api/interceptors.js.map +7 -0
- package/dist/modules/customer_accounts/api/invitations/accept.js +114 -0
- package/dist/modules/customer_accounts/api/invitations/accept.js.map +7 -0
- package/dist/modules/customer_accounts/api/login.js +143 -0
- package/dist/modules/customer_accounts/api/login.js.map +7 -0
- package/dist/modules/customer_accounts/api/magic-link/request.js +78 -0
- package/dist/modules/customer_accounts/api/magic-link/request.js.map +7 -0
- package/dist/modules/customer_accounts/api/magic-link/verify.js +114 -0
- package/dist/modules/customer_accounts/api/magic-link/verify.js.map +7 -0
- package/dist/modules/customer_accounts/api/password/reset-confirm.js +59 -0
- package/dist/modules/customer_accounts/api/password/reset-confirm.js.map +7 -0
- package/dist/modules/customer_accounts/api/password/reset-request.js +77 -0
- package/dist/modules/customer_accounts/api/password/reset-request.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/events/stream.js +163 -0
- package/dist/modules/customer_accounts/api/portal/events/stream.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/feature-check.js +57 -0
- package/dist/modules/customer_accounts/api/portal/feature-check.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/logout.js +64 -0
- package/dist/modules/customer_accounts/api/portal/logout.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/notifications/[id]/dismiss.js +49 -0
- package/dist/modules/customer_accounts/api/portal/notifications/[id]/dismiss.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/notifications/[id]/read.js +49 -0
- package/dist/modules/customer_accounts/api/portal/notifications/[id]/read.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/notifications/mark-all-read.js +46 -0
- package/dist/modules/customer_accounts/api/portal/notifications/mark-all-read.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/notifications/unread-count.js +42 -0
- package/dist/modules/customer_accounts/api/portal/notifications/unread-count.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/notifications.js +105 -0
- package/dist/modules/customer_accounts/api/portal/notifications.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/password-change.js +57 -0
- package/dist/modules/customer_accounts/api/portal/password-change.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/profile.js +135 -0
- package/dist/modules/customer_accounts/api/portal/profile.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/sessions/[id].js +62 -0
- package/dist/modules/customer_accounts/api/portal/sessions/[id].js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/sessions-refresh.js +75 -0
- package/dist/modules/customer_accounts/api/portal/sessions-refresh.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/sessions.js +77 -0
- package/dist/modules/customer_accounts/api/portal/sessions.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/users/[id]/roles.js +90 -0
- package/dist/modules/customer_accounts/api/portal/users/[id]/roles.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/users/[id].js +71 -0
- package/dist/modules/customer_accounts/api/portal/users/[id].js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/users-invite.js +92 -0
- package/dist/modules/customer_accounts/api/portal/users-invite.js.map +7 -0
- package/dist/modules/customer_accounts/api/portal/users.js +79 -0
- package/dist/modules/customer_accounts/api/portal/users.js.map +7 -0
- package/dist/modules/customer_accounts/api/signup.js +121 -0
- package/dist/modules/customer_accounts/api/signup.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.js +491 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.meta.js +15 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/[id]/page.meta.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js +343 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.meta.js +16 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.meta.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.js +180 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.meta.js +16 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/create/page.meta.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +176 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.meta.js +33 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.meta.js.map +7 -0
- package/dist/modules/customer_accounts/backend/page.js +466 -0
- package/dist/modules/customer_accounts/backend/page.js.map +7 -0
- package/dist/modules/customer_accounts/backend/page.meta.js +35 -0
- package/dist/modules/customer_accounts/backend/page.meta.js.map +7 -0
- package/dist/modules/customer_accounts/ce.js +26 -0
- package/dist/modules/customer_accounts/ce.js.map +7 -0
- package/dist/modules/customer_accounts/data/enrichers.js +85 -0
- package/dist/modules/customer_accounts/data/enrichers.js.map +7 -0
- package/dist/modules/customer_accounts/data/entities.js +377 -0
- package/dist/modules/customer_accounts/data/entities.js.map +7 -0
- package/dist/modules/customer_accounts/data/extensions.js +8 -0
- package/dist/modules/customer_accounts/data/extensions.js.map +7 -0
- package/dist/modules/customer_accounts/data/validators.js +111 -0
- package/dist/modules/customer_accounts/data/validators.js.map +7 -0
- package/dist/modules/customer_accounts/di.js +17 -0
- package/dist/modules/customer_accounts/di.js.map +7 -0
- package/dist/modules/customer_accounts/events.js +28 -0
- package/dist/modules/customer_accounts/events.js.map +7 -0
- package/dist/modules/customer_accounts/index.js +15 -0
- package/dist/modules/customer_accounts/index.js.map +7 -0
- package/dist/modules/customer_accounts/lib/customerAuth.js +71 -0
- package/dist/modules/customer_accounts/lib/customerAuth.js.map +7 -0
- package/dist/modules/customer_accounts/lib/customerAuthServer.js +29 -0
- package/dist/modules/customer_accounts/lib/customerAuthServer.js.map +7 -0
- package/dist/modules/customer_accounts/lib/rateLimiter.js +63 -0
- package/dist/modules/customer_accounts/lib/rateLimiter.js.map +7 -0
- package/dist/modules/customer_accounts/lib/tokenGenerator.js +12 -0
- package/dist/modules/customer_accounts/lib/tokenGenerator.js.map +7 -0
- package/dist/modules/customer_accounts/migrations/Migration20260313222043.js +49 -0
- package/dist/modules/customer_accounts/migrations/Migration20260313222043.js.map +7 -0
- package/dist/modules/customer_accounts/notifications.client.js +47 -0
- package/dist/modules/customer_accounts/notifications.client.js.map +7 -0
- package/dist/modules/customer_accounts/notifications.js +46 -0
- package/dist/modules/customer_accounts/notifications.js.map +7 -0
- package/dist/modules/customer_accounts/search.js +120 -0
- package/dist/modules/customer_accounts/search.js.map +7 -0
- package/dist/modules/customer_accounts/services/customerInvitationService.js +87 -0
- package/dist/modules/customer_accounts/services/customerInvitationService.js.map +7 -0
- package/dist/modules/customer_accounts/services/customerRbacService.js +109 -0
- package/dist/modules/customer_accounts/services/customerRbacService.js.map +7 -0
- package/dist/modules/customer_accounts/services/customerSessionService.js +75 -0
- package/dist/modules/customer_accounts/services/customerSessionService.js.map +7 -0
- package/dist/modules/customer_accounts/services/customerTokenService.js +91 -0
- package/dist/modules/customer_accounts/services/customerTokenService.js.map +7 -0
- package/dist/modules/customer_accounts/services/customerUserService.js +92 -0
- package/dist/modules/customer_accounts/services/customerUserService.js.map +7 -0
- package/dist/modules/customer_accounts/setup.js +179 -0
- package/dist/modules/customer_accounts/setup.js.map +7 -0
- package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js +54 -0
- package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js.map +7 -0
- package/dist/modules/customer_accounts/subscribers/autoLinkCrmReverse.js +68 -0
- package/dist/modules/customer_accounts/subscribers/autoLinkCrmReverse.js.map +7 -0
- package/dist/modules/customer_accounts/subscribers/notifyStaffOnSignup.js +29 -0
- package/dist/modules/customer_accounts/subscribers/notifyStaffOnSignup.js.map +7 -0
- package/dist/modules/customer_accounts/translations.js +9 -0
- package/dist/modules/customer_accounts/translations.js.map +7 -0
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +63 -0
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +7 -0
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.js +17 -0
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.js.map +7 -0
- package/dist/modules/customer_accounts/widgets/injection/company-users/widget.client.js +55 -0
- package/dist/modules/customer_accounts/widgets/injection/company-users/widget.client.js.map +7 -0
- package/dist/modules/customer_accounts/widgets/injection/company-users/widget.js +17 -0
- package/dist/modules/customer_accounts/widgets/injection/company-users/widget.js.map +7 -0
- package/dist/modules/customer_accounts/widgets/injection-table.js +26 -0
- package/dist/modules/customer_accounts/widgets/injection-table.js.map +7 -0
- package/dist/modules/customer_accounts/workers/cleanupExpiredSessions.js +23 -0
- package/dist/modules/customer_accounts/workers/cleanupExpiredSessions.js.map +7 -0
- package/dist/modules/customer_accounts/workers/cleanupExpiredTokens.js +38 -0
- package/dist/modules/customer_accounts/workers/cleanupExpiredTokens.js.map +7 -0
- package/dist/modules/customers/components/AddressTiles.js +1 -1
- package/dist/modules/customers/components/AddressTiles.js.map +2 -2
- package/dist/modules/directory/api/get/organizations/lookup.js +83 -0
- package/dist/modules/directory/api/get/organizations/lookup.js.map +7 -0
- package/dist/modules/directory/commands/organizations.js +32 -1
- package/dist/modules/directory/commands/organizations.js.map +2 -2
- package/dist/modules/directory/data/entities.js +6 -2
- package/dist/modules/directory/data/entities.js.map +2 -2
- package/dist/modules/directory/data/validators.js +3 -0
- package/dist/modules/directory/data/validators.js.map +2 -2
- package/dist/modules/directory/migrations/Migration20260314143323.js +15 -0
- package/dist/modules/directory/migrations/Migration20260314143323.js.map +7 -0
- package/dist/modules/directory/setup.js +36 -0
- package/dist/modules/directory/setup.js.map +2 -2
- package/dist/modules/payment_gateways/migrations/Migration20260313222043.js +15 -0
- package/dist/modules/payment_gateways/migrations/Migration20260313222043.js.map +7 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js +131 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js.map +7 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js +96 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js.map +7 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/page.js +94 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/page.js.map +7 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js +89 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js.map +7 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js +104 -0
- package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js.map +7 -0
- package/dist/modules/portal/index.js +11 -0
- package/dist/modules/portal/index.js.map +7 -0
- package/dist/modules/portal/setup.js +23 -0
- package/dist/modules/portal/setup.js.map +7 -0
- package/generated/entities/customer_role/index.ts +12 -0
- package/generated/entities/customer_role_acl/index.ts +8 -0
- package/generated/entities/customer_user/index.ts +17 -0
- package/generated/entities/customer_user_acl/index.ts +8 -0
- package/generated/entities/customer_user_email_verification/index.ts +7 -0
- package/generated/entities/customer_user_invitation/index.ts +15 -0
- package/generated/entities/customer_user_password_reset/index.ts +6 -0
- package/generated/entities/customer_user_role/index.ts +5 -0
- package/generated/entities/customer_user_session/index.ts +9 -0
- package/generated/entities/organization/index.ts +1 -0
- package/generated/entities.ids.generated.ts +14 -1
- package/generated/entity-fields-registry.ts +18 -0
- package/package.json +3 -3
- package/src/modules/auth/services/rbacService.ts +3 -9
- package/src/modules/customer_accounts/AGENTS.md +377 -0
- package/src/modules/customer_accounts/acl.ts +8 -0
- package/src/modules/customer_accounts/api/admin/roles/[id]/acl.ts +98 -0
- package/src/modules/customer_accounts/api/admin/roles/[id].ts +246 -0
- package/src/modules/customer_accounts/api/admin/roles.ts +212 -0
- package/src/modules/customer_accounts/api/admin/users/[id]/reset-password.ts +78 -0
- package/src/modules/customer_accounts/api/admin/users/[id]/verify-email.ts +72 -0
- package/src/modules/customer_accounts/api/admin/users/[id].ts +289 -0
- package/src/modules/customer_accounts/api/admin/users-invite.ts +86 -0
- package/src/modules/customer_accounts/api/admin/users.ts +280 -0
- package/src/modules/customer_accounts/api/email/verify.ts +66 -0
- package/src/modules/customer_accounts/api/interceptors.ts +3 -0
- package/src/modules/customer_accounts/api/invitations/accept.ts +128 -0
- package/src/modules/customer_accounts/api/login.ts +163 -0
- package/src/modules/customer_accounts/api/magic-link/request.ts +87 -0
- package/src/modules/customer_accounts/api/magic-link/verify.ts +132 -0
- package/src/modules/customer_accounts/api/password/reset-confirm.ts +69 -0
- package/src/modules/customer_accounts/api/password/reset-request.ts +87 -0
- package/src/modules/customer_accounts/api/portal/events/stream.ts +209 -0
- package/src/modules/customer_accounts/api/portal/feature-check.ts +60 -0
- package/src/modules/customer_accounts/api/portal/logout.ts +71 -0
- package/src/modules/customer_accounts/api/portal/notifications/[id]/dismiss.ts +54 -0
- package/src/modules/customer_accounts/api/portal/notifications/[id]/read.ts +54 -0
- package/src/modules/customer_accounts/api/portal/notifications/mark-all-read.ts +49 -0
- package/src/modules/customer_accounts/api/portal/notifications/unread-count.ts +45 -0
- package/src/modules/customer_accounts/api/portal/notifications.ts +115 -0
- package/src/modules/customer_accounts/api/portal/password-change.ts +65 -0
- package/src/modules/customer_accounts/api/portal/profile.ts +151 -0
- package/src/modules/customer_accounts/api/portal/sessions/[id].ts +70 -0
- package/src/modules/customer_accounts/api/portal/sessions-refresh.ts +87 -0
- package/src/modules/customer_accounts/api/portal/sessions.ts +84 -0
- package/src/modules/customer_accounts/api/portal/users/[id]/roles.ts +106 -0
- package/src/modules/customer_accounts/api/portal/users/[id].ts +81 -0
- package/src/modules/customer_accounts/api/portal/users-invite.ts +103 -0
- package/src/modules/customer_accounts/api/portal/users.ts +86 -0
- package/src/modules/customer_accounts/api/signup.ts +136 -0
- package/src/modules/customer_accounts/backend/customer_accounts/[id]/page.meta.ts +11 -0
- package/src/modules/customer_accounts/backend/customer_accounts/[id]/page.tsx +607 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.meta.ts +12 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.tsx +385 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/create/page.meta.ts +12 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/create/page.tsx +203 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/page.meta.ts +31 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +217 -0
- package/src/modules/customer_accounts/backend/page.meta.ts +33 -0
- package/src/modules/customer_accounts/backend/page.tsx +535 -0
- package/src/modules/customer_accounts/ce.ts +22 -0
- package/src/modules/customer_accounts/data/enrichers.ts +117 -0
- package/src/modules/customer_accounts/data/entities.ts +302 -0
- package/src/modules/customer_accounts/data/extensions.ts +4 -0
- package/src/modules/customer_accounts/data/validators.ts +128 -0
- package/src/modules/customer_accounts/di.ts +15 -0
- package/src/modules/customer_accounts/events.ts +28 -0
- package/src/modules/customer_accounts/i18n/de.json +176 -0
- package/src/modules/customer_accounts/i18n/en.json +176 -0
- package/src/modules/customer_accounts/i18n/es.json +176 -0
- package/src/modules/customer_accounts/i18n/pl.json +176 -0
- package/src/modules/customer_accounts/index.ts +13 -0
- package/src/modules/customer_accounts/lib/customerAuth.ts +85 -0
- package/src/modules/customer_accounts/lib/customerAuthServer.ts +54 -0
- package/src/modules/customer_accounts/lib/rateLimiter.ts +36 -0
- package/src/modules/customer_accounts/lib/tokenGenerator.ts +9 -0
- package/src/modules/customer_accounts/migrations/.snapshot-open-mercato.json +1255 -0
- package/src/modules/customer_accounts/migrations/Migration20260313222043.ts +62 -0
- package/src/modules/customer_accounts/notifications.client.ts +46 -0
- package/src/modules/customer_accounts/notifications.ts +44 -0
- package/src/modules/customer_accounts/search.ts +134 -0
- package/src/modules/customer_accounts/services/customerInvitationService.ts +109 -0
- package/src/modules/customer_accounts/services/customerRbacService.ts +144 -0
- package/src/modules/customer_accounts/services/customerSessionService.ts +90 -0
- package/src/modules/customer_accounts/services/customerTokenService.ts +98 -0
- package/src/modules/customer_accounts/services/customerUserService.ts +105 -0
- package/src/modules/customer_accounts/setup.ts +212 -0
- package/src/modules/customer_accounts/subscribers/autoLinkCrm.ts +65 -0
- package/src/modules/customer_accounts/subscribers/autoLinkCrmReverse.ts +78 -0
- package/src/modules/customer_accounts/subscribers/notifyStaffOnSignup.ts +32 -0
- package/src/modules/customer_accounts/translations.ts +5 -0
- package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +89 -0
- package/src/modules/customer_accounts/widgets/injection/account-status/widget.ts +16 -0
- package/src/modules/customer_accounts/widgets/injection/company-users/widget.client.tsx +78 -0
- package/src/modules/customer_accounts/widgets/injection/company-users/widget.ts +16 -0
- package/src/modules/customer_accounts/widgets/injection-table.ts +24 -0
- package/src/modules/customer_accounts/workers/cleanupExpiredSessions.ts +33 -0
- package/src/modules/customer_accounts/workers/cleanupExpiredTokens.ts +51 -0
- package/src/modules/customers/components/AddressTiles.tsx +1 -1
- package/src/modules/directory/api/get/organizations/lookup.ts +92 -0
- package/src/modules/directory/commands/organizations.ts +34 -1
- package/src/modules/directory/data/entities.ts +5 -1
- package/src/modules/directory/data/validators.ts +4 -0
- package/src/modules/directory/migrations/.snapshot-open-mercato.json +20 -1
- package/src/modules/directory/migrations/Migration20260314143323.ts +15 -0
- package/src/modules/directory/setup.ts +41 -0
- package/src/modules/payment_gateways/migrations/.snapshot-open-mercato.json +4 -1
- package/src/modules/payment_gateways/migrations/Migration20260313222043.ts +17 -0
- package/src/modules/portal/frontend/[orgSlug]/portal/dashboard/page.tsx +158 -0
- package/src/modules/portal/frontend/[orgSlug]/portal/login/page.tsx +120 -0
- package/src/modules/portal/frontend/[orgSlug]/portal/page.tsx +118 -0
- package/src/modules/portal/frontend/[orgSlug]/portal/profile/page.tsx +112 -0
- package/src/modules/portal/frontend/[orgSlug]/portal/signup/page.tsx +138 -0
- package/src/modules/portal/i18n/de.json +93 -0
- package/src/modules/portal/i18n/en.json +93 -0
- package/src/modules/portal/i18n/es.json +93 -0
- package/src/modules/portal/i18n/pl.json +93 -0
- package/src/modules/portal/index.ts +9 -0
- package/src/modules/portal/setup.ts +23 -0
- package/src/modules/shipping_carriers/migrations/.snapshot-open-mercato.json +226 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"customer_accounts.admin.actions.activate": "Activate",
|
|
3
|
+
"customer_accounts.admin.actions.createUser": "Create User",
|
|
4
|
+
"customer_accounts.admin.actions.deactivate": "Deactivate",
|
|
5
|
+
"customer_accounts.admin.actions.delete": "Delete",
|
|
6
|
+
"customer_accounts.admin.actions.view": "View",
|
|
7
|
+
"customer_accounts.admin.active": "Active",
|
|
8
|
+
"customer_accounts.admin.columns.createdAt": "Created",
|
|
9
|
+
"customer_accounts.admin.columns.displayName": "Name",
|
|
10
|
+
"customer_accounts.admin.columns.email": "Email",
|
|
11
|
+
"customer_accounts.admin.columns.emailVerified": "Verified",
|
|
12
|
+
"customer_accounts.admin.columns.lastLogin": "Last Login",
|
|
13
|
+
"customer_accounts.admin.columns.roles": "Roles",
|
|
14
|
+
"customer_accounts.admin.columns.status": "Status",
|
|
15
|
+
"customer_accounts.admin.confirm.delete": "Delete user \"{{name}}\"?",
|
|
16
|
+
"customer_accounts.admin.confirm.toggleActive": "{{action}} user \"{{name}}\"?",
|
|
17
|
+
"customer_accounts.admin.createUser.actions.cancel": "Cancel",
|
|
18
|
+
"customer_accounts.admin.createUser.actions.create": "Create User",
|
|
19
|
+
"customer_accounts.admin.createUser.actions.creating": "Creating...",
|
|
20
|
+
"customer_accounts.admin.createUser.error.required": "Email, name, and password are required",
|
|
21
|
+
"customer_accounts.admin.createUser.error.save": "Failed to create user",
|
|
22
|
+
"customer_accounts.admin.createUser.fields.displayName": "Display Name",
|
|
23
|
+
"customer_accounts.admin.createUser.fields.displayNamePlaceholder": "John Doe",
|
|
24
|
+
"customer_accounts.admin.createUser.fields.email": "Email",
|
|
25
|
+
"customer_accounts.admin.createUser.fields.emailPlaceholder": "user@example.com",
|
|
26
|
+
"customer_accounts.admin.createUser.fields.password": "Password",
|
|
27
|
+
"customer_accounts.admin.createUser.fields.passwordPlaceholder": "Min. 8 characters",
|
|
28
|
+
"customer_accounts.admin.createUser.fields.roles": "Roles",
|
|
29
|
+
"customer_accounts.admin.createUser.flash.created": "User created",
|
|
30
|
+
"customer_accounts.admin.createUser.title": "Create Customer User",
|
|
31
|
+
"customer_accounts.admin.detail.actions.backToList": "Back to list",
|
|
32
|
+
"customer_accounts.admin.detail.actions.delete": "Delete",
|
|
33
|
+
"customer_accounts.admin.detail.actions.revoke": "Revoke",
|
|
34
|
+
"customer_accounts.admin.detail.actions.save": "Save Changes",
|
|
35
|
+
"customer_accounts.admin.detail.actions.saving": "Saving...",
|
|
36
|
+
"customer_accounts.admin.detail.actions.viewCompany": "View company",
|
|
37
|
+
"customer_accounts.admin.detail.actions.viewPerson": "View person",
|
|
38
|
+
"customer_accounts.admin.detail.error.load": "Failed to load user",
|
|
39
|
+
"customer_accounts.admin.detail.error.notFound": "User not found",
|
|
40
|
+
"customer_accounts.admin.detail.error.revokeSession": "Failed to revoke session",
|
|
41
|
+
"customer_accounts.admin.detail.error.save": "Failed to save user",
|
|
42
|
+
"customer_accounts.admin.detail.fields.createdAt": "Created",
|
|
43
|
+
"customer_accounts.admin.detail.fields.customerEntity": "Company",
|
|
44
|
+
"customer_accounts.admin.detail.fields.displayName": "Display Name",
|
|
45
|
+
"customer_accounts.admin.detail.fields.email": "Email",
|
|
46
|
+
"customer_accounts.admin.detail.fields.emailVerified": "Email Verified",
|
|
47
|
+
"customer_accounts.admin.detail.fields.isActive": "Active",
|
|
48
|
+
"customer_accounts.admin.detail.fields.lastLogin": "Last Login",
|
|
49
|
+
"customer_accounts.admin.detail.fields.lastUsed": "Last used",
|
|
50
|
+
"customer_accounts.admin.detail.fields.personEntity": "Person",
|
|
51
|
+
"customer_accounts.admin.detail.fields.roles": "Roles",
|
|
52
|
+
"customer_accounts.admin.detail.flash.saved": "User updated",
|
|
53
|
+
"customer_accounts.admin.detail.flash.sessionRevoked": "Session revoked",
|
|
54
|
+
"customer_accounts.admin.detail.loading": "Loading user...",
|
|
55
|
+
"customer_accounts.admin.detail.noRolesAvailable": "No roles available",
|
|
56
|
+
"customer_accounts.admin.detail.noSessions": "No active sessions",
|
|
57
|
+
"customer_accounts.admin.detail.resetPassword.actions.cancel": "Cancel",
|
|
58
|
+
"customer_accounts.admin.detail.resetPassword.actions.open": "Reset Password",
|
|
59
|
+
"customer_accounts.admin.detail.resetPassword.actions.reset": "Reset Password",
|
|
60
|
+
"customer_accounts.admin.detail.resetPassword.actions.resetting": "Resetting...",
|
|
61
|
+
"customer_accounts.admin.detail.resetPassword.error.minLength": "Password must be at least 8 characters",
|
|
62
|
+
"customer_accounts.admin.detail.resetPassword.error.save": "Failed to reset password",
|
|
63
|
+
"customer_accounts.admin.detail.resetPassword.fields.newPassword": "New Password",
|
|
64
|
+
"customer_accounts.admin.detail.resetPassword.fields.placeholder": "Min. 8 characters",
|
|
65
|
+
"customer_accounts.admin.detail.resetPassword.flash.success": "Password reset successfully",
|
|
66
|
+
"customer_accounts.admin.detail.resetPassword.title": "Reset Password",
|
|
67
|
+
"customer_accounts.admin.detail.sections.crmLinks": "CRM Links",
|
|
68
|
+
"customer_accounts.admin.detail.sections.info": "User Information",
|
|
69
|
+
"customer_accounts.admin.detail.sections.security": "Security",
|
|
70
|
+
"customer_accounts.admin.detail.sections.sessions": "Active Sessions",
|
|
71
|
+
"customer_accounts.admin.detail.sections.settings": "Account Settings",
|
|
72
|
+
"customer_accounts.admin.detail.unknownDevice": "Unknown device",
|
|
73
|
+
"customer_accounts.admin.detail.unknownIp": "Unknown IP",
|
|
74
|
+
"customer_accounts.admin.detail.verifyEmail.actions.verify": "Mark Verified",
|
|
75
|
+
"customer_accounts.admin.detail.verifyEmail.actions.verifying": "Verifying...",
|
|
76
|
+
"customer_accounts.admin.detail.verifyEmail.confirm": "Mark email as verified for \"{{name}}\"?",
|
|
77
|
+
"customer_accounts.admin.detail.verifyEmail.error": "Failed to verify email",
|
|
78
|
+
"customer_accounts.admin.detail.verifyEmail.flash.success": "Email marked as verified",
|
|
79
|
+
"customer_accounts.admin.error.delete": "Failed to delete user",
|
|
80
|
+
"customer_accounts.admin.error.loadUsers": "Failed to load customer users",
|
|
81
|
+
"customer_accounts.admin.error.toggleActive": "Failed to update user status",
|
|
82
|
+
"customer_accounts.admin.filters.active": "Active",
|
|
83
|
+
"customer_accounts.admin.filters.inactive": "Inactive",
|
|
84
|
+
"customer_accounts.admin.filters.role": "Role",
|
|
85
|
+
"customer_accounts.admin.filters.status": "Status",
|
|
86
|
+
"customer_accounts.admin.flash.activated": "User activated",
|
|
87
|
+
"customer_accounts.admin.flash.deactivated": "User deactivated",
|
|
88
|
+
"customer_accounts.admin.flash.deleted": "User deleted",
|
|
89
|
+
"customer_accounts.admin.inactive": "Inactive",
|
|
90
|
+
"customer_accounts.admin.portalFeatures.addresses.manage": "Manage addresses",
|
|
91
|
+
"customer_accounts.admin.portalFeatures.addresses.view": "View addresses",
|
|
92
|
+
"customer_accounts.admin.portalFeatures.groups.addresses": "Addresses",
|
|
93
|
+
"customer_accounts.admin.portalFeatures.groups.invoices": "Invoices",
|
|
94
|
+
"customer_accounts.admin.portalFeatures.groups.orders": "Orders",
|
|
95
|
+
"customer_accounts.admin.portalFeatures.groups.profile": "Profile",
|
|
96
|
+
"customer_accounts.admin.portalFeatures.groups.quotes": "Quotes",
|
|
97
|
+
"customer_accounts.admin.portalFeatures.groups.users": "Users",
|
|
98
|
+
"customer_accounts.admin.portalFeatures.invoices.view": "View invoices",
|
|
99
|
+
"customer_accounts.admin.portalFeatures.orders.create": "Create orders",
|
|
100
|
+
"customer_accounts.admin.portalFeatures.orders.view": "View orders",
|
|
101
|
+
"customer_accounts.admin.portalFeatures.profile.edit": "Edit profile",
|
|
102
|
+
"customer_accounts.admin.portalFeatures.profile.view": "View profile",
|
|
103
|
+
"customer_accounts.admin.portalFeatures.quotes.request": "Request quotes",
|
|
104
|
+
"customer_accounts.admin.portalFeatures.quotes.view": "View quotes",
|
|
105
|
+
"customer_accounts.admin.portalFeatures.users.invite": "Invite team members",
|
|
106
|
+
"customer_accounts.admin.portalFeatures.users.manage": "Manage team members",
|
|
107
|
+
"customer_accounts.admin.portalFeatures.users.view": "View team members",
|
|
108
|
+
"customer_accounts.admin.roleCreate.actions.cancel": "Cancel",
|
|
109
|
+
"customer_accounts.admin.roleCreate.actions.create": "Create Role",
|
|
110
|
+
"customer_accounts.admin.roleCreate.actions.saving": "Creating...",
|
|
111
|
+
"customer_accounts.admin.roleCreate.error.required": "Name and slug are required",
|
|
112
|
+
"customer_accounts.admin.roleCreate.error.save": "Failed to create role",
|
|
113
|
+
"customer_accounts.admin.roleCreate.fields.customerAssignable": "Customers can self-assign",
|
|
114
|
+
"customer_accounts.admin.roleCreate.fields.description": "Description",
|
|
115
|
+
"customer_accounts.admin.roleCreate.fields.isDefault": "Default role (auto-assigned to new users)",
|
|
116
|
+
"customer_accounts.admin.roleCreate.fields.name": "Name",
|
|
117
|
+
"customer_accounts.admin.roleCreate.fields.namePlaceholder": "e.g. Buyer",
|
|
118
|
+
"customer_accounts.admin.roleCreate.fields.slug": "Slug",
|
|
119
|
+
"customer_accounts.admin.roleCreate.fields.slugHint": "Lowercase letters, numbers, hyphens, and underscores only.",
|
|
120
|
+
"customer_accounts.admin.roleCreate.fields.slugPlaceholder": "e.g. buyer",
|
|
121
|
+
"customer_accounts.admin.roleCreate.flash.created": "Role created",
|
|
122
|
+
"customer_accounts.admin.roleCreate.sections.details": "Role Details",
|
|
123
|
+
"customer_accounts.admin.roleCreate.title": "Create Customer Role",
|
|
124
|
+
"customer_accounts.admin.roleDetail.actions.backToList": "Back to roles",
|
|
125
|
+
"customer_accounts.admin.roleDetail.actions.cancel": "Cancel",
|
|
126
|
+
"customer_accounts.admin.roleDetail.actions.delete": "Delete",
|
|
127
|
+
"customer_accounts.admin.roleDetail.actions.save": "Save Changes",
|
|
128
|
+
"customer_accounts.admin.roleDetail.actions.saving": "Saving...",
|
|
129
|
+
"customer_accounts.admin.roleDetail.error.load": "Failed to load role",
|
|
130
|
+
"customer_accounts.admin.roleDetail.error.notFound": "Role not found",
|
|
131
|
+
"customer_accounts.admin.roleDetail.error.save": "Failed to save role",
|
|
132
|
+
"customer_accounts.admin.roleDetail.fields.customerAssignable": "Customers can self-assign",
|
|
133
|
+
"customer_accounts.admin.roleDetail.fields.description": "Description",
|
|
134
|
+
"customer_accounts.admin.roleDetail.fields.isDefault": "Default role (auto-assigned to new users)",
|
|
135
|
+
"customer_accounts.admin.roleDetail.fields.name": "Name",
|
|
136
|
+
"customer_accounts.admin.roleDetail.flash.saved": "Role updated",
|
|
137
|
+
"customer_accounts.admin.roleDetail.loading": "Loading role...",
|
|
138
|
+
"customer_accounts.admin.roleDetail.sections.details": "Role Details",
|
|
139
|
+
"customer_accounts.admin.roleDetail.sections.permissions": "Portal Permissions",
|
|
140
|
+
"customer_accounts.admin.roles": "Roles",
|
|
141
|
+
"customer_accounts.admin.roles.actions.create": "Create Role",
|
|
142
|
+
"customer_accounts.admin.roles.actions.delete": "Delete",
|
|
143
|
+
"customer_accounts.admin.roles.actions.edit": "Edit",
|
|
144
|
+
"customer_accounts.admin.roles.assignable": "Yes",
|
|
145
|
+
"customer_accounts.admin.roles.columns.customerAssignable": "Self-assignable",
|
|
146
|
+
"customer_accounts.admin.roles.columns.description": "Description",
|
|
147
|
+
"customer_accounts.admin.roles.columns.isDefault": "Default",
|
|
148
|
+
"customer_accounts.admin.roles.columns.isSystem": "System",
|
|
149
|
+
"customer_accounts.admin.roles.columns.name": "Name",
|
|
150
|
+
"customer_accounts.admin.roles.columns.slug": "Slug",
|
|
151
|
+
"customer_accounts.admin.roles.confirm.delete": "Delete role \"{{name}}\"?",
|
|
152
|
+
"customer_accounts.admin.roles.default": "Default",
|
|
153
|
+
"customer_accounts.admin.roles.error.delete": "Failed to delete role",
|
|
154
|
+
"customer_accounts.admin.roles.error.deleteSystem": "System roles cannot be deleted",
|
|
155
|
+
"customer_accounts.admin.roles.error.load": "Failed to load roles",
|
|
156
|
+
"customer_accounts.admin.roles.flash.deleted": "Role deleted",
|
|
157
|
+
"customer_accounts.admin.roles.notAssignable": "No",
|
|
158
|
+
"customer_accounts.admin.roles.searchPlaceholder": "Search roles...",
|
|
159
|
+
"customer_accounts.admin.roles.system": "System",
|
|
160
|
+
"customer_accounts.admin.roles.title": "Customer Roles",
|
|
161
|
+
"customer_accounts.admin.searchPlaceholder": "Search by name or email...",
|
|
162
|
+
"customer_accounts.admin.title": "Customer Accounts",
|
|
163
|
+
"customer_accounts.admin.unverified": "No",
|
|
164
|
+
"customer_accounts.admin.users": "Users",
|
|
165
|
+
"customer_accounts.admin.verified": "Yes",
|
|
166
|
+
"customer_accounts.nav.group": "Customers",
|
|
167
|
+
"customer_accounts.nav.role_create": "Create Role",
|
|
168
|
+
"customer_accounts.nav.role_detail": "Role Detail",
|
|
169
|
+
"customer_accounts.nav.roles": "Customer Roles",
|
|
170
|
+
"customer_accounts.nav.user_detail": "User Detail",
|
|
171
|
+
"customer_accounts.nav.users": "Customer Accounts",
|
|
172
|
+
"customer_accounts.notifications.user.locked.body": "Customer account was locked due to too many failed login attempts.",
|
|
173
|
+
"customer_accounts.notifications.user.locked.title": "Customer account locked",
|
|
174
|
+
"customer_accounts.notifications.user.signup.body": "A new customer account was created.",
|
|
175
|
+
"customer_accounts.notifications.user.signup.title": "New customer signup"
|
|
176
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"customer_accounts.admin.actions.activate": "Activate",
|
|
3
|
+
"customer_accounts.admin.actions.createUser": "Crear usuario",
|
|
4
|
+
"customer_accounts.admin.actions.deactivate": "Deactivate",
|
|
5
|
+
"customer_accounts.admin.actions.delete": "Delete",
|
|
6
|
+
"customer_accounts.admin.actions.view": "View",
|
|
7
|
+
"customer_accounts.admin.active": "Active",
|
|
8
|
+
"customer_accounts.admin.columns.createdAt": "Created",
|
|
9
|
+
"customer_accounts.admin.columns.displayName": "Name",
|
|
10
|
+
"customer_accounts.admin.columns.email": "Email",
|
|
11
|
+
"customer_accounts.admin.columns.emailVerified": "Verified",
|
|
12
|
+
"customer_accounts.admin.columns.lastLogin": "Last Login",
|
|
13
|
+
"customer_accounts.admin.columns.roles": "Roles",
|
|
14
|
+
"customer_accounts.admin.columns.status": "Status",
|
|
15
|
+
"customer_accounts.admin.confirm.delete": "Delete user \"{{name}}\"?",
|
|
16
|
+
"customer_accounts.admin.confirm.toggleActive": "{{action}} user \"{{name}}\"?",
|
|
17
|
+
"customer_accounts.admin.createUser.actions.cancel": "Cancelar",
|
|
18
|
+
"customer_accounts.admin.createUser.actions.create": "Crear usuario",
|
|
19
|
+
"customer_accounts.admin.createUser.actions.creating": "Creando...",
|
|
20
|
+
"customer_accounts.admin.createUser.error.required": "Correo, nombre y contraseña son obligatorios",
|
|
21
|
+
"customer_accounts.admin.createUser.error.save": "No se pudo crear el usuario",
|
|
22
|
+
"customer_accounts.admin.createUser.fields.displayName": "Nombre para mostrar",
|
|
23
|
+
"customer_accounts.admin.createUser.fields.displayNamePlaceholder": "Juan García",
|
|
24
|
+
"customer_accounts.admin.createUser.fields.email": "Correo electrónico",
|
|
25
|
+
"customer_accounts.admin.createUser.fields.emailPlaceholder": "usuario@ejemplo.com",
|
|
26
|
+
"customer_accounts.admin.createUser.fields.password": "Contraseña",
|
|
27
|
+
"customer_accounts.admin.createUser.fields.passwordPlaceholder": "Mín. 8 caracteres",
|
|
28
|
+
"customer_accounts.admin.createUser.fields.roles": "Roles",
|
|
29
|
+
"customer_accounts.admin.createUser.flash.created": "Usuario creado",
|
|
30
|
+
"customer_accounts.admin.createUser.title": "Crear usuario de cliente",
|
|
31
|
+
"customer_accounts.admin.detail.actions.backToList": "Back to list",
|
|
32
|
+
"customer_accounts.admin.detail.actions.delete": "Delete",
|
|
33
|
+
"customer_accounts.admin.detail.actions.revoke": "Revoke",
|
|
34
|
+
"customer_accounts.admin.detail.actions.save": "Save Changes",
|
|
35
|
+
"customer_accounts.admin.detail.actions.saving": "Saving...",
|
|
36
|
+
"customer_accounts.admin.detail.actions.viewCompany": "View company",
|
|
37
|
+
"customer_accounts.admin.detail.actions.viewPerson": "View person",
|
|
38
|
+
"customer_accounts.admin.detail.error.load": "Failed to load user",
|
|
39
|
+
"customer_accounts.admin.detail.error.notFound": "User not found",
|
|
40
|
+
"customer_accounts.admin.detail.error.revokeSession": "Failed to revoke session",
|
|
41
|
+
"customer_accounts.admin.detail.error.save": "Failed to save user",
|
|
42
|
+
"customer_accounts.admin.detail.fields.createdAt": "Created",
|
|
43
|
+
"customer_accounts.admin.detail.fields.customerEntity": "Company",
|
|
44
|
+
"customer_accounts.admin.detail.fields.displayName": "Nombre para mostrar",
|
|
45
|
+
"customer_accounts.admin.detail.fields.email": "Email",
|
|
46
|
+
"customer_accounts.admin.detail.fields.emailVerified": "Email Verified",
|
|
47
|
+
"customer_accounts.admin.detail.fields.isActive": "Active",
|
|
48
|
+
"customer_accounts.admin.detail.fields.lastLogin": "Last Login",
|
|
49
|
+
"customer_accounts.admin.detail.fields.lastUsed": "Last used",
|
|
50
|
+
"customer_accounts.admin.detail.fields.personEntity": "Person",
|
|
51
|
+
"customer_accounts.admin.detail.fields.roles": "Roles",
|
|
52
|
+
"customer_accounts.admin.detail.flash.saved": "User updated",
|
|
53
|
+
"customer_accounts.admin.detail.flash.sessionRevoked": "Session revoked",
|
|
54
|
+
"customer_accounts.admin.detail.loading": "Loading user...",
|
|
55
|
+
"customer_accounts.admin.detail.noRolesAvailable": "No roles available",
|
|
56
|
+
"customer_accounts.admin.detail.noSessions": "No active sessions",
|
|
57
|
+
"customer_accounts.admin.detail.resetPassword.actions.cancel": "Cancelar",
|
|
58
|
+
"customer_accounts.admin.detail.resetPassword.actions.open": "Restablecer contraseña",
|
|
59
|
+
"customer_accounts.admin.detail.resetPassword.actions.reset": "Restablecer contraseña",
|
|
60
|
+
"customer_accounts.admin.detail.resetPassword.actions.resetting": "Restableciendo...",
|
|
61
|
+
"customer_accounts.admin.detail.resetPassword.error.minLength": "La contraseña debe tener al menos 8 caracteres",
|
|
62
|
+
"customer_accounts.admin.detail.resetPassword.error.save": "No se pudo restablecer la contraseña",
|
|
63
|
+
"customer_accounts.admin.detail.resetPassword.fields.newPassword": "Nueva contraseña",
|
|
64
|
+
"customer_accounts.admin.detail.resetPassword.fields.placeholder": "Mín. 8 caracteres",
|
|
65
|
+
"customer_accounts.admin.detail.resetPassword.flash.success": "Contraseña restablecida correctamente",
|
|
66
|
+
"customer_accounts.admin.detail.resetPassword.title": "Restablecer contraseña",
|
|
67
|
+
"customer_accounts.admin.detail.sections.crmLinks": "CRM Links",
|
|
68
|
+
"customer_accounts.admin.detail.sections.info": "User Information",
|
|
69
|
+
"customer_accounts.admin.detail.sections.security": "Seguridad",
|
|
70
|
+
"customer_accounts.admin.detail.sections.sessions": "Active Sessions",
|
|
71
|
+
"customer_accounts.admin.detail.sections.settings": "Configuración de la cuenta",
|
|
72
|
+
"customer_accounts.admin.detail.unknownDevice": "Unknown device",
|
|
73
|
+
"customer_accounts.admin.detail.unknownIp": "Unknown IP",
|
|
74
|
+
"customer_accounts.admin.detail.verifyEmail.actions.verify": "Marcar como verificado",
|
|
75
|
+
"customer_accounts.admin.detail.verifyEmail.actions.verifying": "Verificando...",
|
|
76
|
+
"customer_accounts.admin.detail.verifyEmail.confirm": "¿Marcar correo como verificado para \"{{name}}\"?",
|
|
77
|
+
"customer_accounts.admin.detail.verifyEmail.error": "No se pudo verificar el correo",
|
|
78
|
+
"customer_accounts.admin.detail.verifyEmail.flash.success": "Correo marcado como verificado",
|
|
79
|
+
"customer_accounts.admin.error.delete": "Failed to delete user",
|
|
80
|
+
"customer_accounts.admin.error.loadUsers": "Failed to load customer users",
|
|
81
|
+
"customer_accounts.admin.error.toggleActive": "Failed to update user status",
|
|
82
|
+
"customer_accounts.admin.filters.active": "Active",
|
|
83
|
+
"customer_accounts.admin.filters.inactive": "Inactive",
|
|
84
|
+
"customer_accounts.admin.filters.role": "Role",
|
|
85
|
+
"customer_accounts.admin.filters.status": "Status",
|
|
86
|
+
"customer_accounts.admin.flash.activated": "User activated",
|
|
87
|
+
"customer_accounts.admin.flash.deactivated": "User deactivated",
|
|
88
|
+
"customer_accounts.admin.flash.deleted": "User deleted",
|
|
89
|
+
"customer_accounts.admin.inactive": "Inactive",
|
|
90
|
+
"customer_accounts.admin.portalFeatures.addresses.manage": "Manage addresses",
|
|
91
|
+
"customer_accounts.admin.portalFeatures.addresses.view": "View addresses",
|
|
92
|
+
"customer_accounts.admin.portalFeatures.groups.addresses": "Addresses",
|
|
93
|
+
"customer_accounts.admin.portalFeatures.groups.invoices": "Invoices",
|
|
94
|
+
"customer_accounts.admin.portalFeatures.groups.orders": "Orders",
|
|
95
|
+
"customer_accounts.admin.portalFeatures.groups.profile": "Profile",
|
|
96
|
+
"customer_accounts.admin.portalFeatures.groups.quotes": "Quotes",
|
|
97
|
+
"customer_accounts.admin.portalFeatures.groups.users": "Users",
|
|
98
|
+
"customer_accounts.admin.portalFeatures.invoices.view": "View invoices",
|
|
99
|
+
"customer_accounts.admin.portalFeatures.orders.create": "Create orders",
|
|
100
|
+
"customer_accounts.admin.portalFeatures.orders.view": "View orders",
|
|
101
|
+
"customer_accounts.admin.portalFeatures.profile.edit": "Edit profile",
|
|
102
|
+
"customer_accounts.admin.portalFeatures.profile.view": "View profile",
|
|
103
|
+
"customer_accounts.admin.portalFeatures.quotes.request": "Request quotes",
|
|
104
|
+
"customer_accounts.admin.portalFeatures.quotes.view": "View quotes",
|
|
105
|
+
"customer_accounts.admin.portalFeatures.users.invite": "Invite team members",
|
|
106
|
+
"customer_accounts.admin.portalFeatures.users.manage": "Manage team members",
|
|
107
|
+
"customer_accounts.admin.portalFeatures.users.view": "View team members",
|
|
108
|
+
"customer_accounts.admin.roleCreate.actions.cancel": "Cancel",
|
|
109
|
+
"customer_accounts.admin.roleCreate.actions.create": "Create Role",
|
|
110
|
+
"customer_accounts.admin.roleCreate.actions.saving": "Creating...",
|
|
111
|
+
"customer_accounts.admin.roleCreate.error.required": "Name and slug are required",
|
|
112
|
+
"customer_accounts.admin.roleCreate.error.save": "Failed to create role",
|
|
113
|
+
"customer_accounts.admin.roleCreate.fields.customerAssignable": "Customers can self-assign",
|
|
114
|
+
"customer_accounts.admin.roleCreate.fields.description": "Description",
|
|
115
|
+
"customer_accounts.admin.roleCreate.fields.isDefault": "Default role (auto-assigned to new users)",
|
|
116
|
+
"customer_accounts.admin.roleCreate.fields.name": "Name",
|
|
117
|
+
"customer_accounts.admin.roleCreate.fields.namePlaceholder": "e.g. Buyer",
|
|
118
|
+
"customer_accounts.admin.roleCreate.fields.slug": "Slug",
|
|
119
|
+
"customer_accounts.admin.roleCreate.fields.slugHint": "Lowercase letters, numbers, hyphens, and underscores only.",
|
|
120
|
+
"customer_accounts.admin.roleCreate.fields.slugPlaceholder": "e.g. buyer",
|
|
121
|
+
"customer_accounts.admin.roleCreate.flash.created": "Role created",
|
|
122
|
+
"customer_accounts.admin.roleCreate.sections.details": "Role Details",
|
|
123
|
+
"customer_accounts.admin.roleCreate.title": "Create Customer Role",
|
|
124
|
+
"customer_accounts.admin.roleDetail.actions.backToList": "Back to roles",
|
|
125
|
+
"customer_accounts.admin.roleDetail.actions.cancel": "Cancel",
|
|
126
|
+
"customer_accounts.admin.roleDetail.actions.delete": "Delete",
|
|
127
|
+
"customer_accounts.admin.roleDetail.actions.save": "Save Changes",
|
|
128
|
+
"customer_accounts.admin.roleDetail.actions.saving": "Saving...",
|
|
129
|
+
"customer_accounts.admin.roleDetail.error.load": "Failed to load role",
|
|
130
|
+
"customer_accounts.admin.roleDetail.error.notFound": "Role not found",
|
|
131
|
+
"customer_accounts.admin.roleDetail.error.save": "Failed to save role",
|
|
132
|
+
"customer_accounts.admin.roleDetail.fields.customerAssignable": "Customers can self-assign",
|
|
133
|
+
"customer_accounts.admin.roleDetail.fields.description": "Description",
|
|
134
|
+
"customer_accounts.admin.roleDetail.fields.isDefault": "Default role (auto-assigned to new users)",
|
|
135
|
+
"customer_accounts.admin.roleDetail.fields.name": "Name",
|
|
136
|
+
"customer_accounts.admin.roleDetail.flash.saved": "Role updated",
|
|
137
|
+
"customer_accounts.admin.roleDetail.loading": "Loading role...",
|
|
138
|
+
"customer_accounts.admin.roleDetail.sections.details": "Role Details",
|
|
139
|
+
"customer_accounts.admin.roleDetail.sections.permissions": "Portal Permissions",
|
|
140
|
+
"customer_accounts.admin.roles": "Roles",
|
|
141
|
+
"customer_accounts.admin.roles.actions.create": "Create Role",
|
|
142
|
+
"customer_accounts.admin.roles.actions.delete": "Delete",
|
|
143
|
+
"customer_accounts.admin.roles.actions.edit": "Edit",
|
|
144
|
+
"customer_accounts.admin.roles.assignable": "Yes",
|
|
145
|
+
"customer_accounts.admin.roles.columns.customerAssignable": "Self-assignable",
|
|
146
|
+
"customer_accounts.admin.roles.columns.description": "Description",
|
|
147
|
+
"customer_accounts.admin.roles.columns.isDefault": "Default",
|
|
148
|
+
"customer_accounts.admin.roles.columns.isSystem": "System",
|
|
149
|
+
"customer_accounts.admin.roles.columns.name": "Name",
|
|
150
|
+
"customer_accounts.admin.roles.columns.slug": "Slug",
|
|
151
|
+
"customer_accounts.admin.roles.confirm.delete": "Delete role \"{{name}}\"?",
|
|
152
|
+
"customer_accounts.admin.roles.default": "Default",
|
|
153
|
+
"customer_accounts.admin.roles.error.delete": "Failed to delete role",
|
|
154
|
+
"customer_accounts.admin.roles.error.deleteSystem": "System roles cannot be deleted",
|
|
155
|
+
"customer_accounts.admin.roles.error.load": "Failed to load roles",
|
|
156
|
+
"customer_accounts.admin.roles.flash.deleted": "Role deleted",
|
|
157
|
+
"customer_accounts.admin.roles.notAssignable": "No",
|
|
158
|
+
"customer_accounts.admin.roles.searchPlaceholder": "Search roles...",
|
|
159
|
+
"customer_accounts.admin.roles.system": "System",
|
|
160
|
+
"customer_accounts.admin.roles.title": "Customer Roles",
|
|
161
|
+
"customer_accounts.admin.searchPlaceholder": "Search by name or email...",
|
|
162
|
+
"customer_accounts.admin.title": "Customer Accounts",
|
|
163
|
+
"customer_accounts.admin.unverified": "No",
|
|
164
|
+
"customer_accounts.admin.users": "Users",
|
|
165
|
+
"customer_accounts.admin.verified": "Yes",
|
|
166
|
+
"customer_accounts.nav.group": "Customers",
|
|
167
|
+
"customer_accounts.nav.role_create": "Create Role",
|
|
168
|
+
"customer_accounts.nav.role_detail": "Role Detail",
|
|
169
|
+
"customer_accounts.nav.roles": "Customer Roles",
|
|
170
|
+
"customer_accounts.nav.user_detail": "User Detail",
|
|
171
|
+
"customer_accounts.nav.users": "Customer Accounts",
|
|
172
|
+
"customer_accounts.notifications.user.locked.body": "Customer account was locked due to too many failed login attempts.",
|
|
173
|
+
"customer_accounts.notifications.user.locked.title": "Customer account locked",
|
|
174
|
+
"customer_accounts.notifications.user.signup.body": "A new customer account was created.",
|
|
175
|
+
"customer_accounts.notifications.user.signup.title": "New customer signup"
|
|
176
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"customer_accounts.admin.actions.activate": "Aktywuj",
|
|
3
|
+
"customer_accounts.admin.actions.createUser": "Utwórz użytkownika",
|
|
4
|
+
"customer_accounts.admin.actions.deactivate": "Dezaktywuj",
|
|
5
|
+
"customer_accounts.admin.actions.delete": "Usuń",
|
|
6
|
+
"customer_accounts.admin.actions.view": "Wyświetl",
|
|
7
|
+
"customer_accounts.admin.active": "Aktywny",
|
|
8
|
+
"customer_accounts.admin.columns.createdAt": "Utworzono",
|
|
9
|
+
"customer_accounts.admin.columns.displayName": "Nazwa",
|
|
10
|
+
"customer_accounts.admin.columns.email": "E-mail",
|
|
11
|
+
"customer_accounts.admin.columns.emailVerified": "Zweryfikowany",
|
|
12
|
+
"customer_accounts.admin.columns.lastLogin": "Ostatnie logowanie",
|
|
13
|
+
"customer_accounts.admin.columns.roles": "Role",
|
|
14
|
+
"customer_accounts.admin.columns.status": "Status",
|
|
15
|
+
"customer_accounts.admin.confirm.delete": "Usunąć użytkownika \"{{name}}\"?",
|
|
16
|
+
"customer_accounts.admin.confirm.toggleActive": "{{action}} użytkownika \"{{name}}\"?",
|
|
17
|
+
"customer_accounts.admin.createUser.actions.cancel": "Anuluj",
|
|
18
|
+
"customer_accounts.admin.createUser.actions.create": "Utwórz użytkownika",
|
|
19
|
+
"customer_accounts.admin.createUser.actions.creating": "Tworzenie...",
|
|
20
|
+
"customer_accounts.admin.createUser.error.required": "E-mail, nazwa i hasło są wymagane",
|
|
21
|
+
"customer_accounts.admin.createUser.error.save": "Nie udało się utworzyć użytkownika",
|
|
22
|
+
"customer_accounts.admin.createUser.fields.displayName": "Nazwa wyświetlana",
|
|
23
|
+
"customer_accounts.admin.createUser.fields.displayNamePlaceholder": "Jan Kowalski",
|
|
24
|
+
"customer_accounts.admin.createUser.fields.email": "E-mail",
|
|
25
|
+
"customer_accounts.admin.createUser.fields.emailPlaceholder": "uzytkownik@przyklad.pl",
|
|
26
|
+
"customer_accounts.admin.createUser.fields.password": "Hasło",
|
|
27
|
+
"customer_accounts.admin.createUser.fields.passwordPlaceholder": "Min. 8 znaków",
|
|
28
|
+
"customer_accounts.admin.createUser.fields.roles": "Role",
|
|
29
|
+
"customer_accounts.admin.createUser.flash.created": "Użytkownik utworzony",
|
|
30
|
+
"customer_accounts.admin.createUser.title": "Utwórz użytkownika klienta",
|
|
31
|
+
"customer_accounts.admin.detail.actions.backToList": "Powrót do listy",
|
|
32
|
+
"customer_accounts.admin.detail.actions.delete": "Usuń",
|
|
33
|
+
"customer_accounts.admin.detail.actions.revoke": "Unieważnij",
|
|
34
|
+
"customer_accounts.admin.detail.actions.save": "Zapisz zmiany",
|
|
35
|
+
"customer_accounts.admin.detail.actions.saving": "Zapisywanie...",
|
|
36
|
+
"customer_accounts.admin.detail.actions.viewCompany": "Zobacz firmę",
|
|
37
|
+
"customer_accounts.admin.detail.actions.viewPerson": "Zobacz osobę",
|
|
38
|
+
"customer_accounts.admin.detail.error.load": "Nie udało się załadować użytkownika",
|
|
39
|
+
"customer_accounts.admin.detail.error.notFound": "Nie znaleziono użytkownika",
|
|
40
|
+
"customer_accounts.admin.detail.error.revokeSession": "Nie udało się unieważnić sesji",
|
|
41
|
+
"customer_accounts.admin.detail.error.save": "Nie udało się zapisać użytkownika",
|
|
42
|
+
"customer_accounts.admin.detail.fields.createdAt": "Utworzono",
|
|
43
|
+
"customer_accounts.admin.detail.fields.customerEntity": "Firma",
|
|
44
|
+
"customer_accounts.admin.detail.fields.displayName": "Nazwa wyświetlana",
|
|
45
|
+
"customer_accounts.admin.detail.fields.email": "E-mail",
|
|
46
|
+
"customer_accounts.admin.detail.fields.emailVerified": "E-mail zweryfikowany",
|
|
47
|
+
"customer_accounts.admin.detail.fields.isActive": "Aktywny",
|
|
48
|
+
"customer_accounts.admin.detail.fields.lastLogin": "Ostatnie logowanie",
|
|
49
|
+
"customer_accounts.admin.detail.fields.lastUsed": "Ostatnio używana",
|
|
50
|
+
"customer_accounts.admin.detail.fields.personEntity": "Osoba",
|
|
51
|
+
"customer_accounts.admin.detail.fields.roles": "Role",
|
|
52
|
+
"customer_accounts.admin.detail.flash.saved": "Użytkownik zaktualizowany",
|
|
53
|
+
"customer_accounts.admin.detail.flash.sessionRevoked": "Sesja unieważniona",
|
|
54
|
+
"customer_accounts.admin.detail.loading": "Ładowanie użytkownika...",
|
|
55
|
+
"customer_accounts.admin.detail.noRolesAvailable": "Brak dostępnych ról",
|
|
56
|
+
"customer_accounts.admin.detail.noSessions": "Brak aktywnych sesji",
|
|
57
|
+
"customer_accounts.admin.detail.resetPassword.actions.cancel": "Anuluj",
|
|
58
|
+
"customer_accounts.admin.detail.resetPassword.actions.open": "Zresetuj hasło",
|
|
59
|
+
"customer_accounts.admin.detail.resetPassword.actions.reset": "Zresetuj hasło",
|
|
60
|
+
"customer_accounts.admin.detail.resetPassword.actions.resetting": "Resetowanie...",
|
|
61
|
+
"customer_accounts.admin.detail.resetPassword.error.minLength": "Hasło musi mieć co najmniej 8 znaków",
|
|
62
|
+
"customer_accounts.admin.detail.resetPassword.error.save": "Nie udało się zresetować hasła",
|
|
63
|
+
"customer_accounts.admin.detail.resetPassword.fields.newPassword": "Nowe hasło",
|
|
64
|
+
"customer_accounts.admin.detail.resetPassword.fields.placeholder": "Min. 8 znaków",
|
|
65
|
+
"customer_accounts.admin.detail.resetPassword.flash.success": "Hasło zresetowane pomyślnie",
|
|
66
|
+
"customer_accounts.admin.detail.resetPassword.title": "Zresetuj hasło",
|
|
67
|
+
"customer_accounts.admin.detail.sections.crmLinks": "Powiązania CRM",
|
|
68
|
+
"customer_accounts.admin.detail.sections.info": "Informacje o użytkowniku",
|
|
69
|
+
"customer_accounts.admin.detail.sections.security": "Bezpieczeństwo",
|
|
70
|
+
"customer_accounts.admin.detail.sections.sessions": "Aktywne sesje",
|
|
71
|
+
"customer_accounts.admin.detail.sections.settings": "Ustawienia konta",
|
|
72
|
+
"customer_accounts.admin.detail.unknownDevice": "Nieznane urządzenie",
|
|
73
|
+
"customer_accounts.admin.detail.unknownIp": "Nieznany IP",
|
|
74
|
+
"customer_accounts.admin.detail.verifyEmail.actions.verify": "Oznacz jako zweryfikowany",
|
|
75
|
+
"customer_accounts.admin.detail.verifyEmail.actions.verifying": "Weryfikowanie...",
|
|
76
|
+
"customer_accounts.admin.detail.verifyEmail.confirm": "Oznaczyć e-mail jako zweryfikowany dla \"{{name}}\"?",
|
|
77
|
+
"customer_accounts.admin.detail.verifyEmail.error": "Nie udało się zweryfikować e-maila",
|
|
78
|
+
"customer_accounts.admin.detail.verifyEmail.flash.success": "E-mail oznaczony jako zweryfikowany",
|
|
79
|
+
"customer_accounts.admin.error.delete": "Nie udało się usunąć użytkownika",
|
|
80
|
+
"customer_accounts.admin.error.loadUsers": "Nie udało się załadować kont klientów",
|
|
81
|
+
"customer_accounts.admin.error.toggleActive": "Nie udało się zmienić statusu użytkownika",
|
|
82
|
+
"customer_accounts.admin.filters.active": "Aktywny",
|
|
83
|
+
"customer_accounts.admin.filters.inactive": "Nieaktywny",
|
|
84
|
+
"customer_accounts.admin.filters.role": "Rola",
|
|
85
|
+
"customer_accounts.admin.filters.status": "Status",
|
|
86
|
+
"customer_accounts.admin.flash.activated": "Użytkownik aktywowany",
|
|
87
|
+
"customer_accounts.admin.flash.deactivated": "Użytkownik dezaktywowany",
|
|
88
|
+
"customer_accounts.admin.flash.deleted": "Użytkownik usunięty",
|
|
89
|
+
"customer_accounts.admin.inactive": "Nieaktywny",
|
|
90
|
+
"customer_accounts.admin.portalFeatures.addresses.manage": "Manage addresses",
|
|
91
|
+
"customer_accounts.admin.portalFeatures.addresses.view": "View addresses",
|
|
92
|
+
"customer_accounts.admin.portalFeatures.groups.addresses": "Addresses",
|
|
93
|
+
"customer_accounts.admin.portalFeatures.groups.invoices": "Invoices",
|
|
94
|
+
"customer_accounts.admin.portalFeatures.groups.orders": "Orders",
|
|
95
|
+
"customer_accounts.admin.portalFeatures.groups.profile": "Profile",
|
|
96
|
+
"customer_accounts.admin.portalFeatures.groups.quotes": "Quotes",
|
|
97
|
+
"customer_accounts.admin.portalFeatures.groups.users": "Users",
|
|
98
|
+
"customer_accounts.admin.portalFeatures.invoices.view": "View invoices",
|
|
99
|
+
"customer_accounts.admin.portalFeatures.orders.create": "Create orders",
|
|
100
|
+
"customer_accounts.admin.portalFeatures.orders.view": "View orders",
|
|
101
|
+
"customer_accounts.admin.portalFeatures.profile.edit": "Edit profile",
|
|
102
|
+
"customer_accounts.admin.portalFeatures.profile.view": "View profile",
|
|
103
|
+
"customer_accounts.admin.portalFeatures.quotes.request": "Request quotes",
|
|
104
|
+
"customer_accounts.admin.portalFeatures.quotes.view": "View quotes",
|
|
105
|
+
"customer_accounts.admin.portalFeatures.users.invite": "Invite team members",
|
|
106
|
+
"customer_accounts.admin.portalFeatures.users.manage": "Manage team members",
|
|
107
|
+
"customer_accounts.admin.portalFeatures.users.view": "View team members",
|
|
108
|
+
"customer_accounts.admin.roleCreate.actions.cancel": "Anuluj",
|
|
109
|
+
"customer_accounts.admin.roleCreate.actions.create": "Utwórz rolę",
|
|
110
|
+
"customer_accounts.admin.roleCreate.actions.saving": "Tworzenie...",
|
|
111
|
+
"customer_accounts.admin.roleCreate.error.required": "Nazwa i slug są wymagane",
|
|
112
|
+
"customer_accounts.admin.roleCreate.error.save": "Nie udało się utworzyć roli",
|
|
113
|
+
"customer_accounts.admin.roleCreate.fields.customerAssignable": "Klienci mogą się samoprzypisywać",
|
|
114
|
+
"customer_accounts.admin.roleCreate.fields.description": "Opis",
|
|
115
|
+
"customer_accounts.admin.roleCreate.fields.isDefault": "Domyślna rola (automatycznie przypisywana nowym użytkownikom)",
|
|
116
|
+
"customer_accounts.admin.roleCreate.fields.name": "Nazwa",
|
|
117
|
+
"customer_accounts.admin.roleCreate.fields.namePlaceholder": "np. Kupujący",
|
|
118
|
+
"customer_accounts.admin.roleCreate.fields.slug": "Slug",
|
|
119
|
+
"customer_accounts.admin.roleCreate.fields.slugHint": "Tylko małe litery, cyfry, myślniki i podkreślenia.",
|
|
120
|
+
"customer_accounts.admin.roleCreate.fields.slugPlaceholder": "np. kupujacy",
|
|
121
|
+
"customer_accounts.admin.roleCreate.flash.created": "Rola utworzona",
|
|
122
|
+
"customer_accounts.admin.roleCreate.sections.details": "Szczegóły roli",
|
|
123
|
+
"customer_accounts.admin.roleCreate.title": "Utwórz rolę klienta",
|
|
124
|
+
"customer_accounts.admin.roleDetail.actions.backToList": "Powrót do ról",
|
|
125
|
+
"customer_accounts.admin.roleDetail.actions.cancel": "Anuluj",
|
|
126
|
+
"customer_accounts.admin.roleDetail.actions.delete": "Usuń",
|
|
127
|
+
"customer_accounts.admin.roleDetail.actions.save": "Zapisz zmiany",
|
|
128
|
+
"customer_accounts.admin.roleDetail.actions.saving": "Zapisywanie...",
|
|
129
|
+
"customer_accounts.admin.roleDetail.error.load": "Nie udało się załadować roli",
|
|
130
|
+
"customer_accounts.admin.roleDetail.error.notFound": "Nie znaleziono roli",
|
|
131
|
+
"customer_accounts.admin.roleDetail.error.save": "Nie udało się zapisać roli",
|
|
132
|
+
"customer_accounts.admin.roleDetail.fields.customerAssignable": "Klienci mogą się samoprzypisywać",
|
|
133
|
+
"customer_accounts.admin.roleDetail.fields.description": "Opis",
|
|
134
|
+
"customer_accounts.admin.roleDetail.fields.isDefault": "Domyślna rola (automatycznie przypisywana nowym użytkownikom)",
|
|
135
|
+
"customer_accounts.admin.roleDetail.fields.name": "Nazwa",
|
|
136
|
+
"customer_accounts.admin.roleDetail.flash.saved": "Rola zaktualizowana",
|
|
137
|
+
"customer_accounts.admin.roleDetail.loading": "Ładowanie roli...",
|
|
138
|
+
"customer_accounts.admin.roleDetail.sections.details": "Szczegóły roli",
|
|
139
|
+
"customer_accounts.admin.roleDetail.sections.permissions": "Uprawnienia portalu",
|
|
140
|
+
"customer_accounts.admin.roles": "Role",
|
|
141
|
+
"customer_accounts.admin.roles.actions.create": "Utwórz rolę",
|
|
142
|
+
"customer_accounts.admin.roles.actions.delete": "Usuń",
|
|
143
|
+
"customer_accounts.admin.roles.actions.edit": "Edytuj",
|
|
144
|
+
"customer_accounts.admin.roles.assignable": "Tak",
|
|
145
|
+
"customer_accounts.admin.roles.columns.customerAssignable": "Samoprzypisywalna",
|
|
146
|
+
"customer_accounts.admin.roles.columns.description": "Opis",
|
|
147
|
+
"customer_accounts.admin.roles.columns.isDefault": "Domyślna",
|
|
148
|
+
"customer_accounts.admin.roles.columns.isSystem": "Systemowa",
|
|
149
|
+
"customer_accounts.admin.roles.columns.name": "Nazwa",
|
|
150
|
+
"customer_accounts.admin.roles.columns.slug": "Slug",
|
|
151
|
+
"customer_accounts.admin.roles.confirm.delete": "Usunąć rolę \"{{name}}\"?",
|
|
152
|
+
"customer_accounts.admin.roles.default": "Domyślna",
|
|
153
|
+
"customer_accounts.admin.roles.error.delete": "Nie udało się usunąć roli",
|
|
154
|
+
"customer_accounts.admin.roles.error.deleteSystem": "Ról systemowych nie można usunąć",
|
|
155
|
+
"customer_accounts.admin.roles.error.load": "Nie udało się załadować ról",
|
|
156
|
+
"customer_accounts.admin.roles.flash.deleted": "Rola usunięta",
|
|
157
|
+
"customer_accounts.admin.roles.notAssignable": "Nie",
|
|
158
|
+
"customer_accounts.admin.roles.searchPlaceholder": "Szukaj ról...",
|
|
159
|
+
"customer_accounts.admin.roles.system": "Systemowa",
|
|
160
|
+
"customer_accounts.admin.roles.title": "Role klientów",
|
|
161
|
+
"customer_accounts.admin.searchPlaceholder": "Szukaj po nazwie lub e-mailu...",
|
|
162
|
+
"customer_accounts.admin.title": "Konta klientów",
|
|
163
|
+
"customer_accounts.admin.unverified": "Nie",
|
|
164
|
+
"customer_accounts.admin.users": "Użytkownicy",
|
|
165
|
+
"customer_accounts.admin.verified": "Tak",
|
|
166
|
+
"customer_accounts.nav.group": "Klienci",
|
|
167
|
+
"customer_accounts.nav.role_create": "Utwórz rolę",
|
|
168
|
+
"customer_accounts.nav.role_detail": "Szczegóły roli",
|
|
169
|
+
"customer_accounts.nav.roles": "Role klientów",
|
|
170
|
+
"customer_accounts.nav.user_detail": "Szczegóły użytkownika",
|
|
171
|
+
"customer_accounts.nav.users": "Konta klientów",
|
|
172
|
+
"customer_accounts.notifications.user.locked.body": "Customer account was locked due to too many failed login attempts.",
|
|
173
|
+
"customer_accounts.notifications.user.locked.title": "Customer account locked",
|
|
174
|
+
"customer_accounts.notifications.user.signup.body": "A new customer account was created.",
|
|
175
|
+
"customer_accounts.notifications.user.signup.title": "New customer signup"
|
|
176
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ModuleInfo } from '@open-mercato/shared/modules/registry'
|
|
2
|
+
|
|
3
|
+
export const metadata: ModuleInfo = {
|
|
4
|
+
name: 'customer_accounts',
|
|
5
|
+
title: 'Customer Identity & Portal Authentication',
|
|
6
|
+
version: '0.1.0',
|
|
7
|
+
description: 'Customer-facing authentication with two-tier identity model and full RBAC.',
|
|
8
|
+
author: 'Open Mercato Team',
|
|
9
|
+
license: 'Proprietary',
|
|
10
|
+
ejectable: true,
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { features } from './acl'
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server'
|
|
2
|
+
import { verifyJwt } from '@open-mercato/shared/lib/auth/jwt'
|
|
3
|
+
import { hasAllFeatures } from '@open-mercato/shared/lib/auth/featureMatch'
|
|
4
|
+
|
|
5
|
+
export interface CustomerAuthContext {
|
|
6
|
+
sub: string
|
|
7
|
+
type: 'customer'
|
|
8
|
+
tenantId: string
|
|
9
|
+
orgId: string
|
|
10
|
+
email: string
|
|
11
|
+
displayName: string
|
|
12
|
+
customerEntityId?: string | null
|
|
13
|
+
personEntityId?: string | null
|
|
14
|
+
resolvedFeatures: string[]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function readCookieFromHeader(header: string | null | undefined, name: string): string | undefined {
|
|
18
|
+
if (!header) return undefined
|
|
19
|
+
const parts = header.split(';')
|
|
20
|
+
for (const part of parts) {
|
|
21
|
+
const trimmed = part.trim()
|
|
22
|
+
if (trimmed.startsWith(`${name}=`)) {
|
|
23
|
+
return trimmed.slice(name.length + 1)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return undefined
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export async function getCustomerAuthFromRequest(req: Request): Promise<CustomerAuthContext | null> {
|
|
30
|
+
const cookieHeader = req.headers.get('cookie') || ''
|
|
31
|
+
const authHeader = (req.headers.get('authorization') || '').trim()
|
|
32
|
+
|
|
33
|
+
let token: string | undefined
|
|
34
|
+
if (authHeader.toLowerCase().startsWith('bearer ')) {
|
|
35
|
+
token = authHeader.slice(7).trim()
|
|
36
|
+
}
|
|
37
|
+
if (!token) {
|
|
38
|
+
const cookieValue = readCookieFromHeader(cookieHeader, 'customer_auth_token')
|
|
39
|
+
if (cookieValue) {
|
|
40
|
+
try {
|
|
41
|
+
token = decodeURIComponent(cookieValue)
|
|
42
|
+
} catch {
|
|
43
|
+
// Malformed percent-encoding; use raw value
|
|
44
|
+
token = cookieValue
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!token) return null
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
const payload = verifyJwt(token) as Record<string, unknown> | null
|
|
52
|
+
if (!payload) return null
|
|
53
|
+
if (payload.type !== 'customer') return null
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
sub: String(payload.sub),
|
|
57
|
+
type: 'customer',
|
|
58
|
+
tenantId: String(payload.tenantId),
|
|
59
|
+
orgId: String(payload.orgId),
|
|
60
|
+
email: String(payload.email || ''),
|
|
61
|
+
displayName: String(payload.displayName || ''),
|
|
62
|
+
customerEntityId: payload.customerEntityId ? String(payload.customerEntityId) : null,
|
|
63
|
+
personEntityId: payload.personEntityId ? String(payload.personEntityId) : null,
|
|
64
|
+
resolvedFeatures: Array.isArray(payload.resolvedFeatures) ? payload.resolvedFeatures as string[] : [],
|
|
65
|
+
}
|
|
66
|
+
} catch {
|
|
67
|
+
// Invalid or expired JWT — treat as unauthenticated
|
|
68
|
+
return null
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export async function requireCustomerAuth(req: Request): Promise<CustomerAuthContext> {
|
|
73
|
+
const auth = await getCustomerAuthFromRequest(req)
|
|
74
|
+
if (!auth) {
|
|
75
|
+
throw NextResponse.json({ ok: false, error: 'Authentication required' }, { status: 401 })
|
|
76
|
+
}
|
|
77
|
+
return auth
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function requireCustomerFeature(auth: CustomerAuthContext, features: string[]): void {
|
|
81
|
+
if (!features.length) return
|
|
82
|
+
if (!hasAllFeatures(features, auth.resolvedFeatures)) {
|
|
83
|
+
throw NextResponse.json({ ok: false, error: 'Insufficient permissions' }, { status: 403 })
|
|
84
|
+
}
|
|
85
|
+
}
|