@sync-in/server 1.10.1 → 2.0.0
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 +47 -0
- package/LICENSE +1 -1
- package/README.md +3 -11
- package/environment/environment.dist.min.yaml +1 -1
- package/environment/environment.dist.yaml +173 -28
- package/package.json +18 -17
- package/server/app.bootstrap.js +1 -5
- package/server/app.bootstrap.js.map +1 -1
- package/server/app.constants.js +1 -5
- package/server/app.constants.js.map +1 -1
- package/server/app.e2e-spec.js +1 -5
- package/server/app.e2e-spec.js.map +1 -1
- package/server/app.functions.js +1 -5
- package/server/app.functions.js.map +1 -1
- package/server/app.module.js +1 -5
- package/server/app.module.js.map +1 -1
- package/server/app.service.js +1 -5
- package/server/app.service.js.map +1 -1
- package/server/app.service.spec.js +2 -6
- package/server/app.service.spec.js.map +1 -1
- package/server/applications/admin/admin.module.js +1 -5
- package/server/applications/admin/admin.module.js.map +1 -1
- package/server/applications/admin/constants/routes.js +1 -5
- package/server/applications/admin/constants/routes.js.map +1 -1
- package/server/applications/admin/interfaces/check-update.interfaces.js +1 -5
- package/server/applications/admin/interfaces/check-update.interfaces.js.map +1 -1
- package/server/applications/admin/services/admin-scheduler.service.js +1 -5
- package/server/applications/admin/services/admin-scheduler.service.js.map +1 -1
- package/server/applications/admin/services/admin.service.js +13 -8
- package/server/applications/admin/services/admin.service.js.map +1 -1
- package/server/applications/admin/services/admin.service.spec.js +1 -5
- package/server/applications/admin/services/admin.service.spec.js.map +1 -1
- package/server/applications/admin/utils/check-update.js +1 -5
- package/server/applications/admin/utils/check-update.js.map +1 -1
- package/server/applications/applications.config.js +1 -5
- package/server/applications/applications.config.js.map +1 -1
- package/server/applications/applications.constants.js +5 -5
- package/server/applications/applications.constants.js.map +1 -1
- package/server/applications/applications.module.js +1 -5
- package/server/applications/applications.module.js.map +1 -1
- package/server/applications/comments/comments.controller.js +1 -5
- package/server/applications/comments/comments.controller.js.map +1 -1
- package/server/applications/comments/comments.controller.spec.js +1 -5
- package/server/applications/comments/comments.controller.spec.js.map +1 -1
- package/server/applications/comments/comments.module.js +1 -5
- package/server/applications/comments/comments.module.js.map +1 -1
- package/server/applications/comments/constants/routes.js +1 -5
- package/server/applications/comments/constants/routes.js.map +1 -1
- package/server/applications/comments/dto/comment.dto.js +1 -5
- package/server/applications/comments/dto/comment.dto.js.map +1 -1
- package/server/applications/comments/interfaces/comment-recent.interface.js +1 -5
- package/server/applications/comments/interfaces/comment-recent.interface.js.map +1 -1
- package/server/applications/comments/schemas/comment.interface.js +1 -5
- package/server/applications/comments/schemas/comment.interface.js.map +1 -1
- package/server/applications/comments/schemas/comments.schema.js +1 -5
- package/server/applications/comments/schemas/comments.schema.js.map +1 -1
- package/server/applications/comments/services/comments-manager.service.js +9 -7
- package/server/applications/comments/services/comments-manager.service.js.map +1 -1
- package/server/applications/comments/services/comments-manager.service.spec.js +10 -8
- package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
- package/server/applications/comments/services/comments-queries.service.js +1 -5
- package/server/applications/comments/services/comments-queries.service.js.map +1 -1
- package/server/applications/files/adapters/files-indexer-mysql.service.js +29 -12
- package/server/applications/files/adapters/files-indexer-mysql.service.js.map +1 -1
- package/server/applications/files/adapters/files-indexer-mysql.service.spec.js +1 -5
- package/server/applications/files/adapters/files-indexer-mysql.service.spec.js.map +1 -1
- package/server/applications/files/constants/cache.js +1 -5
- package/server/applications/files/constants/cache.js.map +1 -1
- package/server/applications/files/constants/compress.js +1 -5
- package/server/applications/files/constants/compress.js.map +1 -1
- package/server/applications/files/constants/files.js +1 -5
- package/server/applications/files/constants/files.js.map +1 -1
- package/server/applications/files/constants/indexing.js +1 -5
- package/server/applications/files/constants/indexing.js.map +1 -1
- package/server/applications/files/constants/operations.js +1 -5
- package/server/applications/files/constants/operations.js.map +1 -1
- package/server/applications/files/constants/routes.js +1 -5
- package/server/applications/files/constants/routes.js.map +1 -1
- package/server/applications/files/constants/samples.js +1 -5
- package/server/applications/files/constants/samples.js.map +1 -1
- package/server/applications/files/dto/file-operations.dto.js +1 -5
- package/server/applications/files/dto/file-operations.dto.js.map +1 -1
- package/server/applications/files/events/file-task-event.js +1 -5
- package/server/applications/files/events/file-task-event.js.map +1 -1
- package/server/applications/files/files-tasks.controller.js +1 -5
- package/server/applications/files/files-tasks.controller.js.map +1 -1
- package/server/applications/files/files-tasks.controller.spec.js +1 -5
- package/server/applications/files/files-tasks.controller.spec.js.map +1 -1
- package/server/applications/files/files.config.js +1 -5
- package/server/applications/files/files.config.js.map +1 -1
- package/server/applications/files/files.controller.js +1 -5
- package/server/applications/files/files.controller.js.map +1 -1
- package/server/applications/files/files.controller.spec.js +1 -5
- package/server/applications/files/files.controller.spec.js.map +1 -1
- package/server/applications/files/files.module.js +1 -5
- package/server/applications/files/files.module.js.map +1 -1
- package/server/applications/files/interfaces/file-db-props.interface.js +1 -5
- package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-lock.interface.js +1 -5
- package/server/applications/files/interfaces/file-lock.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-parse-index.js +1 -5
- package/server/applications/files/interfaces/file-parse-index.js.map +1 -1
- package/server/applications/files/interfaces/file-props.interface.js +1 -5
- package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-recent-location.interface.js +1 -5
- package/server/applications/files/interfaces/file-recent-location.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-space.interface.js +1 -5
- package/server/applications/files/interfaces/file-space.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-tree.interface.js +1 -5
- package/server/applications/files/interfaces/file-tree.interface.js.map +1 -1
- package/server/applications/files/models/file-error.js +1 -5
- package/server/applications/files/models/file-error.js.map +1 -1
- package/server/applications/files/models/file-lock-error.js +1 -5
- package/server/applications/files/models/file-lock-error.js.map +1 -1
- package/server/applications/files/models/file-task.js +1 -5
- package/server/applications/files/models/file-task.js.map +1 -1
- package/server/applications/files/models/files-indexer.js +1 -5
- package/server/applications/files/models/files-indexer.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js +21 -10
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.config.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.config.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.constants.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.constants.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.controller.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.controller.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.dtos.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.dtos.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.guard.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.guard.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.interface.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.interface.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.module.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.module.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.routes.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.routes.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.strategy.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.strategy.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.utils.js +1 -5
- package/server/applications/files/modules/collabora-online/collabora-online.utils.js.map +1 -1
- package/server/applications/files/modules/file-editor-providers.interface.js +6 -0
- package/server/applications/files/modules/file-editor-providers.interface.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office-environment.decorator.js +1 -5
- package/server/applications/files/modules/only-office/only-office-environment.decorator.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office-manager.service.js +57 -19
- package/server/applications/files/modules/only-office/only-office-manager.service.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office-manager.service.spec.js +1 -5
- package/server/applications/files/modules/only-office/only-office-manager.service.spec.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.config.js +1 -5
- package/server/applications/files/modules/only-office/only-office.config.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.constants.js +1 -5
- package/server/applications/files/modules/only-office/only-office.constants.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.controller.js +1 -5
- package/server/applications/files/modules/only-office/only-office.controller.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.controller.spec.js +1 -5
- package/server/applications/files/modules/only-office/only-office.controller.spec.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.dtos.js +1 -5
- package/server/applications/files/modules/only-office/only-office.dtos.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.guard.js +1 -5
- package/server/applications/files/modules/only-office/only-office.guard.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.guard.spec.js +1 -5
- package/server/applications/files/modules/only-office/only-office.guard.spec.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.interface.js +1 -5
- package/server/applications/files/modules/only-office/only-office.interface.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.module.js +1 -5
- package/server/applications/files/modules/only-office/only-office.module.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.routes.js +1 -5
- package/server/applications/files/modules/only-office/only-office.routes.js.map +1 -1
- package/server/applications/files/modules/only-office/only-office.strategy.js +1 -5
- package/server/applications/files/modules/only-office/only-office.strategy.js.map +1 -1
- package/server/applications/files/schemas/file-content.interface.js +1 -5
- package/server/applications/files/schemas/file-content.interface.js.map +1 -1
- package/server/applications/files/schemas/file-recent.interface.js +1 -5
- package/server/applications/files/schemas/file-recent.interface.js.map +1 -1
- package/server/applications/files/schemas/file.interface.js +1 -5
- package/server/applications/files/schemas/file.interface.js.map +1 -1
- package/server/applications/files/schemas/files-content.schema.js +1 -5
- package/server/applications/files/schemas/files-content.schema.js.map +1 -1
- package/server/applications/files/schemas/files-recents.schema.js +1 -5
- package/server/applications/files/schemas/files-recents.schema.js.map +1 -1
- package/server/applications/files/schemas/files.schema.js +1 -5
- package/server/applications/files/schemas/files.schema.js.map +1 -1
- package/server/applications/files/services/files-content-manager.service.js +45 -16
- package/server/applications/files/services/files-content-manager.service.js.map +1 -1
- package/server/applications/files/services/files-lock-manager.service.js +53 -18
- package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
- package/server/applications/files/services/files-lock-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-lock-manager.service.spec.js.map +1 -1
- package/server/applications/files/services/files-manager.service.js +77 -24
- package/server/applications/files/services/files-manager.service.js.map +1 -1
- package/server/applications/files/services/files-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-manager.service.spec.js.map +1 -1
- package/server/applications/files/services/files-methods.service.js +5 -6
- package/server/applications/files/services/files-methods.service.js.map +1 -1
- package/server/applications/files/services/files-methods.service.spec.js +1 -5
- package/server/applications/files/services/files-methods.service.spec.js.map +1 -1
- package/server/applications/files/services/files-parser.service.js +13 -8
- package/server/applications/files/services/files-parser.service.js.map +1 -1
- package/server/applications/files/services/files-parser.service.spec.js +1 -5
- package/server/applications/files/services/files-parser.service.spec.js.map +1 -1
- package/server/applications/files/services/files-queries.service.js +29 -12
- package/server/applications/files/services/files-queries.service.js.map +1 -1
- package/server/applications/files/services/files-recents.service.js +1 -5
- package/server/applications/files/services/files-recents.service.js.map +1 -1
- package/server/applications/files/services/files-recents.service.spec.js +1 -5
- package/server/applications/files/services/files-recents.service.spec.js.map +1 -1
- package/server/applications/files/services/files-scheduler.service.js +77 -24
- package/server/applications/files/services/files-scheduler.service.js.map +1 -1
- package/server/applications/files/services/files-search-manager.service.js +9 -7
- package/server/applications/files/services/files-search-manager.service.js.map +1 -1
- package/server/applications/files/services/files-search-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-search-manager.service.spec.js.map +1 -1
- package/server/applications/files/services/files-tasks-manager.service.js +77 -24
- package/server/applications/files/services/files-tasks-manager.service.js.map +1 -1
- package/server/applications/files/services/files-tasks-manager.service.spec.js +1 -5
- package/server/applications/files/services/files-tasks-manager.service.spec.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/excel.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/excel.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/html.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/html.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/open-office.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/open-office.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/pdf.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/power-point.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/power-point.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/text.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/text.js.map +1 -1
- package/server/applications/files/utils/doc-textify/adapters/word.js +1 -5
- package/server/applications/files/utils/doc-textify/adapters/word.js.map +1 -1
- package/server/applications/files/utils/doc-textify/doc-textify.js +1 -5
- package/server/applications/files/utils/doc-textify/doc-textify.js.map +1 -1
- package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js +1 -5
- package/server/applications/files/utils/doc-textify/interfaces/doc-textify.interfaces.js.map +1 -1
- package/server/applications/files/utils/doc-textify/utils/clean.js +1 -5
- package/server/applications/files/utils/doc-textify/utils/clean.js.map +1 -1
- package/server/applications/files/utils/files-search.js +1 -5
- package/server/applications/files/utils/files-search.js.map +1 -1
- package/server/applications/files/utils/files-tree.js +1 -5
- package/server/applications/files/utils/files-tree.js.map +1 -1
- package/server/applications/files/utils/files.js +1 -5
- package/server/applications/files/utils/files.js.map +1 -1
- package/server/applications/files/utils/send-file.js +1 -5
- package/server/applications/files/utils/send-file.js.map +1 -1
- package/server/applications/files/utils/unzip-file.js +1 -5
- package/server/applications/files/utils/unzip-file.js.map +1 -1
- package/server/applications/files/utils/url-file.js +1 -5
- package/server/applications/files/utils/url-file.js.map +1 -1
- package/server/applications/links/constants/cache.js +1 -5
- package/server/applications/links/constants/cache.js.map +1 -1
- package/server/applications/links/constants/links.js +1 -5
- package/server/applications/links/constants/links.js.map +1 -1
- package/server/applications/links/constants/routes.js +1 -5
- package/server/applications/links/constants/routes.js.map +1 -1
- package/server/applications/links/dto/create-or-update-link.dto.js +1 -5
- package/server/applications/links/dto/create-or-update-link.dto.js.map +1 -1
- package/server/applications/links/interfaces/link-guest.interface.js +1 -5
- package/server/applications/links/interfaces/link-guest.interface.js.map +1 -1
- package/server/applications/links/interfaces/link-space.interface.js +1 -5
- package/server/applications/links/interfaces/link-space.interface.js.map +1 -1
- package/server/applications/links/links.controller.js +1 -5
- package/server/applications/links/links.controller.js.map +1 -1
- package/server/applications/links/links.controller.spec.js +1 -5
- package/server/applications/links/links.controller.spec.js.map +1 -1
- package/server/applications/links/schemas/link.interface.js +1 -5
- package/server/applications/links/schemas/link.interface.js.map +1 -1
- package/server/applications/links/schemas/links.schema.js +1 -5
- package/server/applications/links/schemas/links.schema.js.map +1 -1
- package/server/applications/links/services/links-manager.service.js +55 -20
- package/server/applications/links/services/links-manager.service.js.map +1 -1
- package/server/applications/links/services/links-manager.service.spec.js +3 -7
- package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
- package/server/applications/links/services/links-queries.service.js +1 -5
- package/server/applications/links/services/links-queries.service.js.map +1 -1
- package/server/applications/notifications/constants/notifications.js +1 -5
- package/server/applications/notifications/constants/notifications.js.map +1 -1
- package/server/applications/notifications/constants/routes.js +1 -5
- package/server/applications/notifications/constants/routes.js.map +1 -1
- package/server/applications/notifications/constants/websocket.js +1 -5
- package/server/applications/notifications/constants/websocket.js.map +1 -1
- package/server/applications/notifications/i18n/de.js +1 -9
- package/server/applications/notifications/i18n/de.js.map +1 -1
- package/server/applications/notifications/i18n/es.js +1 -5
- package/server/applications/notifications/i18n/es.js.map +1 -1
- package/server/applications/notifications/i18n/fr.js +1 -5
- package/server/applications/notifications/i18n/fr.js.map +1 -1
- package/server/applications/notifications/i18n/hi.js +1 -5
- package/server/applications/notifications/i18n/hi.js.map +1 -1
- package/server/applications/notifications/i18n/index.js +1 -5
- package/server/applications/notifications/i18n/index.js.map +1 -1
- package/server/applications/notifications/i18n/it.js +1 -5
- package/server/applications/notifications/i18n/it.js.map +1 -1
- package/server/applications/notifications/i18n/ja.js +1 -5
- package/server/applications/notifications/i18n/ja.js.map +1 -1
- package/server/applications/notifications/i18n/ko.js +1 -5
- package/server/applications/notifications/i18n/ko.js.map +1 -1
- package/server/applications/notifications/i18n/pl.js +1 -5
- package/server/applications/notifications/i18n/pl.js.map +1 -1
- package/server/applications/notifications/i18n/pt.js +1 -5
- package/server/applications/notifications/i18n/pt.js.map +1 -1
- package/server/applications/notifications/i18n/pt_br.js +1 -5
- package/server/applications/notifications/i18n/pt_br.js.map +1 -1
- package/server/applications/notifications/i18n/ru.js +1 -5
- package/server/applications/notifications/i18n/ru.js.map +1 -1
- package/server/applications/notifications/i18n/tr.js +1 -5
- package/server/applications/notifications/i18n/tr.js.map +1 -1
- package/server/applications/notifications/i18n/zh.js +1 -5
- package/server/applications/notifications/i18n/zh.js.map +1 -1
- package/server/applications/notifications/interfaces/notification-properties.interface.js +1 -5
- package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
- package/server/applications/notifications/interfaces/user-mail-notification.interface.js +1 -5
- package/server/applications/notifications/interfaces/user-mail-notification.interface.js.map +1 -1
- package/server/applications/notifications/mails/models.js +1 -5
- package/server/applications/notifications/mails/models.js.map +1 -1
- package/server/applications/notifications/mails/templates.js +1 -5
- package/server/applications/notifications/mails/templates.js.map +1 -1
- package/server/applications/notifications/mails/urls.js +1 -5
- package/server/applications/notifications/mails/urls.js.map +1 -1
- package/server/applications/notifications/notifications.controller.js +1 -5
- package/server/applications/notifications/notifications.controller.js.map +1 -1
- package/server/applications/notifications/notifications.controller.spec.js +1 -5
- package/server/applications/notifications/notifications.controller.spec.js.map +1 -1
- package/server/applications/notifications/notifications.gateway.js +1 -5
- package/server/applications/notifications/notifications.gateway.js.map +1 -1
- package/server/applications/notifications/notifications.module.js +1 -5
- package/server/applications/notifications/notifications.module.js.map +1 -1
- package/server/applications/notifications/schemas/notification.interface.js +1 -5
- package/server/applications/notifications/schemas/notification.interface.js.map +1 -1
- package/server/applications/notifications/schemas/notifications.schema.js +1 -5
- package/server/applications/notifications/schemas/notifications.schema.js.map +1 -1
- package/server/applications/notifications/services/notifications-manager.service.js +25 -11
- package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
- package/server/applications/notifications/services/notifications-manager.service.spec.js +20 -11
- package/server/applications/notifications/services/notifications-manager.service.spec.js.map +1 -1
- package/server/applications/notifications/services/notifications-queries.service.js +1 -5
- package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
- package/server/applications/shares/constants/routes.js +1 -5
- package/server/applications/shares/constants/routes.js.map +1 -1
- package/server/applications/shares/constants/shares.js +1 -5
- package/server/applications/shares/constants/shares.js.map +1 -1
- package/server/applications/shares/dto/create-or-update-share.dto.js +1 -5
- package/server/applications/shares/dto/create-or-update-share.dto.js.map +1 -1
- package/server/applications/shares/interfaces/share-child.interface.js +1 -5
- package/server/applications/shares/interfaces/share-child.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-env.interface.js +1 -5
- package/server/applications/shares/interfaces/share-env.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-file.interface.js +1 -5
- package/server/applications/shares/interfaces/share-file.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-link.interface.js +1 -5
- package/server/applications/shares/interfaces/share-link.interface.js.map +1 -1
- package/server/applications/shares/interfaces/share-props.interface.js +1 -5
- package/server/applications/shares/interfaces/share-props.interface.js.map +1 -1
- package/server/applications/shares/models/share-child.model.js +1 -5
- package/server/applications/shares/models/share-child.model.js.map +1 -1
- package/server/applications/shares/schemas/share-members.interface.js +1 -5
- package/server/applications/shares/schemas/share-members.interface.js.map +1 -1
- package/server/applications/shares/schemas/share.interface.js +1 -5
- package/server/applications/shares/schemas/share.interface.js.map +1 -1
- package/server/applications/shares/schemas/shares-members.schema.js +1 -5
- package/server/applications/shares/schemas/shares-members.schema.js.map +1 -1
- package/server/applications/shares/schemas/shares.schema.js +1 -5
- package/server/applications/shares/schemas/shares.schema.js.map +1 -1
- package/server/applications/shares/services/shares-manager.service.js +214 -68
- package/server/applications/shares/services/shares-manager.service.js.map +1 -1
- package/server/applications/shares/services/shares-manager.service.spec.js +1 -5
- package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
- package/server/applications/shares/services/shares-queries.service.js +49 -17
- package/server/applications/shares/services/shares-queries.service.js.map +1 -1
- package/server/applications/shares/shares.controller.js +1 -5
- package/server/applications/shares/shares.controller.js.map +1 -1
- package/server/applications/shares/shares.controller.spec.js +1 -5
- package/server/applications/shares/shares.controller.spec.js.map +1 -1
- package/server/applications/shares/shares.module.js +1 -5
- package/server/applications/shares/shares.module.js.map +1 -1
- package/server/applications/spaces/constants/cache.js +1 -5
- package/server/applications/spaces/constants/cache.js.map +1 -1
- package/server/applications/spaces/constants/routes.js +1 -5
- package/server/applications/spaces/constants/routes.js.map +1 -1
- package/server/applications/spaces/constants/spaces.js +1 -5
- package/server/applications/spaces/constants/spaces.js.map +1 -1
- package/server/applications/spaces/decorators/space-override-permission.decorator.js +1 -5
- package/server/applications/spaces/decorators/space-override-permission.decorator.js.map +1 -1
- package/server/applications/spaces/decorators/space-skip-guard.decorator.js +1 -5
- package/server/applications/spaces/decorators/space-skip-guard.decorator.js.map +1 -1
- package/server/applications/spaces/decorators/space-skip-permissions.decorator.js +1 -5
- package/server/applications/spaces/decorators/space-skip-permissions.decorator.js.map +1 -1
- package/server/applications/spaces/decorators/space.decorator.js +1 -5
- package/server/applications/spaces/decorators/space.decorator.js.map +1 -1
- package/server/applications/spaces/dto/create-or-update-space.dto.js +1 -5
- package/server/applications/spaces/dto/create-or-update-space.dto.js.map +1 -1
- package/server/applications/spaces/dto/delete-space.dto.js +1 -5
- package/server/applications/spaces/dto/delete-space.dto.js.map +1 -1
- package/server/applications/spaces/dto/search-space.dto.js +1 -5
- package/server/applications/spaces/dto/search-space.dto.js.map +1 -1
- package/server/applications/spaces/dto/space-roots.dto.js +1 -5
- package/server/applications/spaces/dto/space-roots.dto.js.map +1 -1
- package/server/applications/spaces/guards/space.guard.js +17 -9
- package/server/applications/spaces/guards/space.guard.js.map +1 -1
- package/server/applications/spaces/guards/space.guard.spec.js +1 -5
- package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
- package/server/applications/spaces/interfaces/space-diff.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-diff.interface.js.map +1 -1
- package/server/applications/spaces/interfaces/space-files.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-files.interface.js.map +1 -1
- package/server/applications/spaces/interfaces/space-request.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-request.interface.js.map +1 -1
- package/server/applications/spaces/interfaces/space-trash.interface.js +1 -5
- package/server/applications/spaces/interfaces/space-trash.interface.js.map +1 -1
- package/server/applications/spaces/models/space-env.model.js +1 -5
- package/server/applications/spaces/models/space-env.model.js.map +1 -1
- package/server/applications/spaces/models/space-props.model.js +1 -5
- package/server/applications/spaces/models/space-props.model.js.map +1 -1
- package/server/applications/spaces/models/space-root-props.model.js +1 -5
- package/server/applications/spaces/models/space-root-props.model.js.map +1 -1
- package/server/applications/spaces/models/space.model.js +1 -5
- package/server/applications/spaces/models/space.model.js.map +1 -1
- package/server/applications/spaces/schemas/space-members.interface.js +1 -5
- package/server/applications/spaces/schemas/space-members.interface.js.map +1 -1
- package/server/applications/spaces/schemas/space-root.interface.js +1 -5
- package/server/applications/spaces/schemas/space-root.interface.js.map +1 -1
- package/server/applications/spaces/schemas/space.interface.js +1 -5
- package/server/applications/spaces/schemas/space.interface.js.map +1 -1
- package/server/applications/spaces/schemas/spaces-members.schema.js +1 -5
- package/server/applications/spaces/schemas/spaces-members.schema.js.map +1 -1
- package/server/applications/spaces/schemas/spaces-roots.schema.js +1 -5
- package/server/applications/spaces/schemas/spaces-roots.schema.js.map +1 -1
- package/server/applications/spaces/schemas/spaces.schema.js +1 -5
- package/server/applications/spaces/schemas/spaces.schema.js.map +1 -1
- package/server/applications/spaces/services/spaces-browser.service.js +77 -24
- package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
- package/server/applications/spaces/services/spaces-browser.service.spec.js +1 -5
- package/server/applications/spaces/services/spaces-browser.service.spec.js.map +1 -1
- package/server/applications/spaces/services/spaces-manager.service.js +193 -53
- package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
- package/server/applications/spaces/services/spaces-manager.service.spec.js +1 -5
- package/server/applications/spaces/services/spaces-manager.service.spec.js.map +1 -1
- package/server/applications/spaces/services/spaces-queries.service.js +65 -21
- package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
- package/server/applications/spaces/services/spaces-scheduler.service.js +49 -17
- package/server/applications/spaces/services/spaces-scheduler.service.js.map +1 -1
- package/server/applications/spaces/spaces.controller.js +1 -5
- package/server/applications/spaces/spaces.controller.js.map +1 -1
- package/server/applications/spaces/spaces.controller.spec.js +1 -5
- package/server/applications/spaces/spaces.controller.spec.js.map +1 -1
- package/server/applications/spaces/spaces.module.js +1 -5
- package/server/applications/spaces/spaces.module.js.map +1 -1
- package/server/applications/spaces/utils/paths.js +1 -5
- package/server/applications/spaces/utils/paths.js.map +1 -1
- package/server/applications/spaces/utils/permissions.js +1 -5
- package/server/applications/spaces/utils/permissions.js.map +1 -1
- package/server/applications/spaces/utils/routes.js +1 -5
- package/server/applications/spaces/utils/routes.js.map +1 -1
- package/server/applications/sync/constants/auth.js +1 -5
- package/server/applications/sync/constants/auth.js.map +1 -1
- package/server/applications/sync/constants/routes.js +6 -5
- package/server/applications/sync/constants/routes.js.map +1 -1
- package/server/applications/sync/constants/store.js +1 -9
- package/server/applications/sync/constants/store.js.map +1 -1
- package/server/applications/sync/constants/sync.js +2 -6
- package/server/applications/sync/constants/sync.js.map +1 -1
- package/server/applications/sync/decorators/sync-context.decorator.js +1 -5
- package/server/applications/sync/decorators/sync-context.decorator.js.map +1 -1
- package/server/applications/sync/decorators/sync-environment.decorator.js +1 -5
- package/server/applications/sync/decorators/sync-environment.decorator.js.map +1 -1
- package/server/applications/sync/dtos/sync-client-auth.dto.js +12 -8
- package/server/applications/sync/dtos/sync-client-auth.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-client-info.dto.js +49 -0
- package/server/applications/sync/dtos/sync-client-info.dto.js.map +1 -0
- package/server/applications/sync/dtos/sync-client-registration.dto.js +34 -11
- package/server/applications/sync/dtos/sync-client-registration.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-operations.dto.js +1 -5
- package/server/applications/sync/dtos/sync-operations.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-path.dto.js +1 -5
- package/server/applications/sync/dtos/sync-path.dto.js.map +1 -1
- package/server/applications/sync/dtos/sync-upload.dto.js +1 -5
- package/server/applications/sync/dtos/sync-upload.dto.js.map +1 -1
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js +1 -5
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.js.map +1 -1
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js +1 -5
- package/server/applications/sync/interceptors/sync-diff-gzip-body.interceptor.spec.js.map +1 -1
- package/server/applications/sync/interfaces/store-manifest.interface.js +1 -5
- package/server/applications/sync/interfaces/store-manifest.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-client-auth.interface.js +1 -25
- package/server/applications/sync/interfaces/sync-client-auth.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-client-paths.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-client-paths.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-client.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-client.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-diff.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-diff.interface.js.map +1 -1
- package/server/applications/sync/interfaces/sync-path.interface.js +1 -5
- package/server/applications/sync/interfaces/sync-path.interface.js.map +1 -1
- package/server/applications/sync/schemas/sync-client.interface.js +1 -5
- package/server/applications/sync/schemas/sync-client.interface.js.map +1 -1
- package/server/applications/sync/schemas/sync-clients.schema.js +1 -5
- package/server/applications/sync/schemas/sync-clients.schema.js.map +1 -1
- package/server/applications/sync/schemas/sync-path.interface.js +1 -5
- package/server/applications/sync/schemas/sync-path.interface.js.map +1 -1
- package/server/applications/sync/schemas/sync-paths.schema.js +1 -5
- package/server/applications/sync/schemas/sync-paths.schema.js.map +1 -1
- package/server/applications/sync/services/sync-clients-manager.service.js +108 -44
- package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -1
- package/server/applications/sync/services/sync-clients-manager.service.spec.js +14 -17
- package/server/applications/sync/services/sync-clients-manager.service.spec.js.map +1 -1
- package/server/applications/sync/services/sync-manager.service.js +29 -12
- package/server/applications/sync/services/sync-manager.service.js.map +1 -1
- package/server/applications/sync/services/sync-manager.service.spec.js +1 -5
- package/server/applications/sync/services/sync-manager.service.spec.js.map +1 -1
- package/server/applications/sync/services/sync-paths-manager.service.js +27 -17
- package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
- package/server/applications/sync/services/sync-paths-manager.service.spec.js +11 -15
- package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
- package/server/applications/sync/services/sync-queries.service.js +1 -5
- package/server/applications/sync/services/sync-queries.service.js.map +1 -1
- package/server/applications/sync/sync.config.js +1 -5
- package/server/applications/sync/sync.config.js.map +1 -1
- package/server/applications/sync/sync.controller.js +21 -6
- package/server/applications/sync/sync.controller.js.map +1 -1
- package/server/applications/sync/sync.controller.spec.js +1 -5
- package/server/applications/sync/sync.controller.spec.js.map +1 -1
- package/server/applications/sync/sync.module.js +1 -5
- package/server/applications/sync/sync.module.js.map +1 -1
- package/server/applications/sync/utils/functions.js +1 -5
- package/server/applications/sync/utils/functions.js.map +1 -1
- package/server/applications/sync/utils/normalizedMap.js +1 -5
- package/server/applications/sync/utils/normalizedMap.js.map +1 -1
- package/server/applications/sync/utils/routes.js +1 -5
- package/server/applications/sync/utils/routes.js.map +1 -1
- package/server/applications/users/admin-users.controller.js +2 -6
- package/server/applications/users/admin-users.controller.js.map +1 -1
- package/server/applications/users/admin-users.controller.spec.js +6 -10
- package/server/applications/users/admin-users.controller.spec.js.map +1 -1
- package/server/applications/users/constants/group.js +1 -5
- package/server/applications/users/constants/group.js.map +1 -1
- package/server/applications/users/constants/member.js +1 -5
- package/server/applications/users/constants/member.js.map +1 -1
- package/server/applications/users/constants/routes.js +1 -5
- package/server/applications/users/constants/routes.js.map +1 -1
- package/server/applications/users/constants/user.js +1 -5
- package/server/applications/users/constants/user.js.map +1 -1
- package/server/applications/users/constants/websocket.js +1 -5
- package/server/applications/users/constants/websocket.js.map +1 -1
- package/server/applications/users/decorators/permissions.decorator.js +1 -5
- package/server/applications/users/decorators/permissions.decorator.js.map +1 -1
- package/server/applications/users/decorators/roles.decorator.js +1 -5
- package/server/applications/users/decorators/roles.decorator.js.map +1 -1
- package/server/applications/users/decorators/user.decorator.js +1 -5
- package/server/applications/users/decorators/user.decorator.js.map +1 -1
- package/server/applications/users/dto/create-or-update-group.dto.js +1 -5
- package/server/applications/users/dto/create-or-update-group.dto.js.map +1 -1
- package/server/applications/users/dto/create-or-update-user.dto.js +1 -5
- package/server/applications/users/dto/create-or-update-user.dto.js.map +1 -1
- package/server/applications/users/dto/delete-user.dto.js +1 -5
- package/server/applications/users/dto/delete-user.dto.js.map +1 -1
- package/server/applications/users/dto/search-members.dto.js +1 -5
- package/server/applications/users/dto/search-members.dto.js.map +1 -1
- package/server/applications/users/dto/user-properties.dto.js +1 -5
- package/server/applications/users/dto/user-properties.dto.js.map +1 -1
- package/server/applications/users/guards/permissions.guard.js +1 -5
- package/server/applications/users/guards/permissions.guard.js.map +1 -1
- package/server/applications/users/guards/permissions.guard.spec.js +1 -5
- package/server/applications/users/guards/permissions.guard.spec.js.map +1 -1
- package/server/applications/users/guards/roles.guard.js +1 -5
- package/server/applications/users/guards/roles.guard.js.map +1 -1
- package/server/applications/users/guards/roles.guard.spec.js +1 -5
- package/server/applications/users/guards/roles.guard.spec.js.map +1 -1
- package/server/applications/users/interfaces/admin-group.interface.js +1 -5
- package/server/applications/users/interfaces/admin-group.interface.js.map +1 -1
- package/server/applications/users/interfaces/admin-user.interface.js +1 -5
- package/server/applications/users/interfaces/admin-user.interface.js.map +1 -1
- package/server/applications/users/interfaces/group-browse.interface.js +1 -5
- package/server/applications/users/interfaces/group-browse.interface.js.map +1 -1
- package/server/applications/users/interfaces/group-member.js +1 -5
- package/server/applications/users/interfaces/group-member.js.map +1 -1
- package/server/applications/users/interfaces/guest-user.interface.js +1 -5
- package/server/applications/users/interfaces/guest-user.interface.js.map +1 -1
- package/server/applications/users/interfaces/member.interface.js +1 -5
- package/server/applications/users/interfaces/member.interface.js.map +1 -1
- package/server/applications/users/interfaces/owner.interface.js +1 -5
- package/server/applications/users/interfaces/owner.interface.js.map +1 -1
- package/server/applications/users/interfaces/user-secrets.interface.js +1 -5
- package/server/applications/users/interfaces/user-secrets.interface.js.map +1 -1
- package/server/applications/users/interfaces/websocket.interface.js +1 -5
- package/server/applications/users/interfaces/websocket.interface.js.map +1 -1
- package/server/applications/users/models/user.model.js +1 -5
- package/server/applications/users/models/user.model.js.map +1 -1
- package/server/applications/users/schemas/group.interface.js +1 -5
- package/server/applications/users/schemas/group.interface.js.map +1 -1
- package/server/applications/users/schemas/groups.schema.js +1 -5
- package/server/applications/users/schemas/groups.schema.js.map +1 -1
- package/server/applications/users/schemas/user-group.interface.js +1 -5
- package/server/applications/users/schemas/user-group.interface.js.map +1 -1
- package/server/applications/users/schemas/user.interface.js +1 -5
- package/server/applications/users/schemas/user.interface.js.map +1 -1
- package/server/applications/users/schemas/users-groups.schema.js +1 -5
- package/server/applications/users/schemas/users-groups.schema.js.map +1 -1
- package/server/applications/users/schemas/users-guests.schema.js +1 -5
- package/server/applications/users/schemas/users-guests.schema.js.map +1 -1
- package/server/applications/users/schemas/users.schema.js +1 -5
- package/server/applications/users/schemas/users.schema.js.map +1 -1
- package/server/applications/users/services/admin-users-manager.service.js +67 -23
- package/server/applications/users/services/admin-users-manager.service.js.map +1 -1
- package/server/applications/users/services/admin-users-manager.service.spec.js +3 -7
- package/server/applications/users/services/admin-users-manager.service.spec.js.map +1 -1
- package/server/applications/users/services/admin-users-queries.service.js +65 -21
- package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
- package/server/applications/users/services/users-manager.service.js +81 -25
- package/server/applications/users/services/users-manager.service.js.map +1 -1
- package/server/applications/users/services/users-manager.service.spec.js +14 -12
- package/server/applications/users/services/users-manager.service.spec.js.map +1 -1
- package/server/applications/users/services/users-queries.service.js +49 -17
- package/server/applications/users/services/users-queries.service.js.map +1 -1
- package/server/applications/users/users.controller.js +2 -6
- package/server/applications/users/users.controller.js.map +1 -1
- package/server/applications/users/users.controller.spec.js +5 -9
- package/server/applications/users/users.controller.spec.js.map +1 -1
- package/server/applications/users/users.e2e-spec.js +3 -7
- package/server/applications/users/users.e2e-spec.js.map +1 -1
- package/server/applications/users/users.gateway.js +29 -12
- package/server/applications/users/users.gateway.js.map +1 -1
- package/server/applications/users/users.gateway.spec.js +1 -5
- package/server/applications/users/users.gateway.spec.js.map +1 -1
- package/server/applications/users/users.module.js +1 -5
- package/server/applications/users/users.module.js.map +1 -1
- package/server/applications/users/utils/avatar.js +1 -5
- package/server/applications/users/utils/avatar.js.map +1 -1
- package/server/applications/users/utils/test.js +1 -5
- package/server/applications/users/utils/test.js.map +1 -1
- package/server/applications/webdav/constants/routes.js +1 -5
- package/server/applications/webdav/constants/routes.js.map +1 -1
- package/server/applications/webdav/constants/webdav.js +1 -5
- package/server/applications/webdav/constants/webdav.js.map +1 -1
- package/server/applications/webdav/decorators/if-header.decorator.js +1 -5
- package/server/applications/webdav/decorators/if-header.decorator.js.map +1 -1
- package/server/applications/webdav/decorators/webdav-context.decorator.js +1 -5
- package/server/applications/webdav/decorators/webdav-context.decorator.js.map +1 -1
- package/server/applications/webdav/filters/webdav.filter.js +1 -5
- package/server/applications/webdav/filters/webdav.filter.js.map +1 -1
- package/server/applications/webdav/filters/webdav.filter.spec.js +1 -5
- package/server/applications/webdav/filters/webdav.filter.spec.js.map +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.js +54 -20
- package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +54 -0
- package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
- package/server/applications/webdav/interfaces/if-header.interface.js +1 -5
- package/server/applications/webdav/interfaces/if-header.interface.js.map +1 -1
- package/server/applications/webdav/interfaces/webdav.interface.js +1 -5
- package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -1
- package/server/applications/webdav/models/webdav-file.model.js +1 -5
- package/server/applications/webdav/models/webdav-file.model.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.js +74 -26
- package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.spec.js +15 -18
- package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
- package/server/applications/webdav/services/webdav-spaces.service.js +17 -9
- package/server/applications/webdav/services/webdav-spaces.service.js.map +1 -1
- package/server/applications/webdav/services/webdav-spaces.service.spec.js +1 -5
- package/server/applications/webdav/services/webdav-spaces.service.spec.js.map +1 -1
- package/server/applications/webdav/utils/bootstrap.js +1 -5
- package/server/applications/webdav/utils/bootstrap.js.map +1 -1
- package/server/applications/webdav/utils/if-header.js +1 -5
- package/server/applications/webdav/utils/if-header.js.map +1 -1
- package/server/applications/webdav/utils/routes.js +1 -5
- package/server/applications/webdav/utils/routes.js.map +1 -1
- package/server/applications/webdav/utils/webdav.js +1 -5
- package/server/applications/webdav/utils/webdav.js.map +1 -1
- package/server/applications/webdav/utils/xml.js +1 -5
- package/server/applications/webdav/utils/xml.js.map +1 -1
- package/server/applications/webdav/webdav.controller.js +1 -5
- package/server/applications/webdav/webdav.controller.js.map +1 -1
- package/server/applications/webdav/webdav.controller.spec.js +1 -5
- package/server/applications/webdav/webdav.controller.spec.js.map +1 -1
- package/server/applications/webdav/webdav.e2e-spec.js +1 -5
- package/server/applications/webdav/webdav.e2e-spec.js.map +1 -1
- package/server/applications/webdav/webdav.module.js +1 -5
- package/server/applications/webdav/webdav.module.js.map +1 -1
- package/server/authentication/auth.config.js +23 -123
- package/server/authentication/auth.config.js.map +1 -1
- package/server/authentication/auth.controller.js +27 -21
- package/server/authentication/auth.controller.js.map +1 -1
- package/server/authentication/auth.controller.spec.js +6 -10
- package/server/authentication/auth.controller.spec.js.map +1 -1
- package/server/authentication/auth.e2e-spec.js +1 -5
- package/server/authentication/auth.e2e-spec.js.map +1 -1
- package/server/authentication/auth.module.js +17 -20
- package/server/authentication/auth.module.js.map +1 -1
- package/server/authentication/{services/auth-manager.service.js → auth.service.js} +41 -18
- package/server/authentication/auth.service.js.map +1 -0
- package/server/authentication/{services/auth-manager.service.spec.js → auth.service.spec.js} +6 -10
- package/server/authentication/auth.service.spec.js.map +1 -0
- package/server/authentication/constants/auth.js +1 -5
- package/server/authentication/constants/auth.js.map +1 -1
- package/server/authentication/constants/routes.js +41 -30
- package/server/authentication/constants/routes.js.map +1 -1
- package/server/authentication/constants/scope.js +2 -5
- package/server/authentication/constants/scope.js.map +1 -1
- package/server/authentication/decorators/auth-token-optional.decorator.js +1 -5
- package/server/authentication/decorators/auth-token-optional.decorator.js.map +1 -1
- package/server/authentication/decorators/auth-token-skip.decorator.js +1 -5
- package/server/authentication/decorators/auth-token-skip.decorator.js.map +1 -1
- package/server/authentication/dto/login-response.dto.js +1 -10
- package/server/authentication/dto/login-response.dto.js.map +1 -1
- package/server/authentication/dto/token-response.dto.js +1 -5
- package/server/authentication/dto/token-response.dto.js.map +1 -1
- package/server/authentication/guards/auth-anonymous.guard.js +1 -5
- package/server/authentication/guards/auth-anonymous.guard.js.map +1 -1
- package/server/authentication/guards/auth-anonymous.guard.spec.js +1 -5
- package/server/authentication/guards/auth-anonymous.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-anonymous.strategy.js +1 -5
- package/server/authentication/guards/auth-anonymous.strategy.js.map +1 -1
- package/server/authentication/guards/auth-basic.guard.js +1 -5
- package/server/authentication/guards/auth-basic.guard.js.map +1 -1
- package/server/authentication/guards/auth-basic.guard.spec.js +13 -14
- package/server/authentication/guards/auth-basic.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-basic.strategy.js +10 -11
- package/server/authentication/guards/auth-basic.strategy.js.map +1 -1
- package/server/authentication/guards/auth-digest.guard.js +1 -5
- package/server/authentication/guards/auth-digest.guard.js.map +1 -1
- package/server/authentication/guards/auth-digest.strategy.js +1 -5
- package/server/authentication/guards/auth-digest.strategy.js.map +1 -1
- package/server/authentication/guards/auth-local.guard.js +1 -5
- package/server/authentication/guards/auth-local.guard.js.map +1 -1
- package/server/authentication/guards/auth-local.guard.spec.js +9 -13
- package/server/authentication/guards/auth-local.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-local.strategy.js +6 -10
- package/server/authentication/guards/auth-local.strategy.js.map +1 -1
- package/server/authentication/guards/auth-token-access.guard.js +1 -5
- package/server/authentication/guards/auth-token-access.guard.js.map +1 -1
- package/server/authentication/guards/auth-token-access.guard.spec.js +3 -7
- package/server/authentication/guards/auth-token-access.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-token-access.strategy.js +3 -7
- package/server/authentication/guards/auth-token-access.strategy.js.map +1 -1
- package/server/authentication/guards/auth-token-refresh.guard.js +1 -5
- package/server/authentication/guards/auth-token-refresh.guard.js.map +1 -1
- package/server/authentication/guards/auth-token-refresh.guard.spec.js +3 -7
- package/server/authentication/guards/auth-token-refresh.guard.spec.js.map +1 -1
- package/server/authentication/guards/auth-token-refresh.strategy.js +3 -7
- package/server/authentication/guards/auth-token-refresh.strategy.js.map +1 -1
- package/server/authentication/guards/implementations/http-basic.strategy.js +1 -5
- package/server/authentication/guards/implementations/http-basic.strategy.js.map +1 -1
- package/server/authentication/guards/implementations/http-digest.strategy.js +1 -5
- package/server/authentication/guards/implementations/http-digest.strategy.js.map +1 -1
- package/server/authentication/interfaces/auth-request.interface.js +1 -5
- package/server/authentication/interfaces/auth-request.interface.js.map +1 -1
- package/server/authentication/interfaces/jwt-payload.interface.js +1 -5
- package/server/authentication/interfaces/jwt-payload.interface.js.map +1 -1
- package/server/authentication/interfaces/token.interface.js +1 -5
- package/server/authentication/interfaces/token.interface.js.map +1 -1
- package/server/authentication/providers/auth-providers.constants.js +18 -0
- package/server/authentication/providers/auth-providers.constants.js.map +1 -0
- package/server/authentication/providers/auth-providers.models.js +14 -0
- package/server/authentication/providers/auth-providers.models.js.map +1 -0
- package/server/authentication/providers/auth-providers.utils.js +42 -0
- package/server/authentication/providers/auth-providers.utils.js.map +1 -0
- package/server/authentication/providers/ldap/auth-ldap.config.js +143 -0
- package/server/authentication/providers/ldap/auth-ldap.config.js.map +1 -0
- package/server/authentication/{constants/auth-ldap.js → providers/ldap/auth-ldap.constants.js} +12 -6
- package/server/authentication/providers/ldap/auth-ldap.constants.js.map +1 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.js +506 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.js.map +1 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js +674 -0
- package/server/authentication/providers/ldap/auth-provider-ldap.service.spec.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-database.service.js → providers/mysql/auth-provider-mysql.service.js} +16 -14
- package/server/authentication/providers/mysql/auth-provider-mysql.service.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-database.service.spec.js → providers/mysql/auth-provider-mysql.service.spec.js} +15 -19
- package/server/authentication/providers/mysql/auth-provider-mysql.service.spec.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js +30 -0
- package/server/authentication/providers/oidc/auth-oidc-desktop.constants.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.config.js +149 -0
- package/server/authentication/providers/oidc/auth-oidc.config.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.constants.js +39 -0
- package/server/authentication/providers/oidc/auth-oidc.constants.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.controller.js +83 -0
- package/server/authentication/providers/oidc/auth-oidc.controller.js.map +1 -0
- package/server/authentication/providers/oidc/auth-oidc.interfaces.js +6 -0
- package/server/authentication/providers/oidc/auth-oidc.interfaces.js.map +1 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.module.js +36 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.module.js.map +1 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.js +373 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.js.map +1 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js +270 -0
- package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-two-fa.service.js → providers/two-fa/auth-provider-two-fa.service.js} +56 -38
- package/server/authentication/providers/two-fa/auth-provider-two-fa.service.js.map +1 -0
- package/server/authentication/{services/auth-methods/auth-method-two-fa.service.spec.js → providers/two-fa/auth-provider-two-fa.service.spec.js} +6 -10
- package/server/authentication/providers/two-fa/auth-provider-two-fa.service.spec.js.map +1 -0
- package/server/authentication/{guards → providers/two-fa}/auth-two-fa-guard.js +10 -14
- package/server/authentication/providers/two-fa/auth-two-fa-guard.js.map +1 -0
- package/server/authentication/providers/two-fa/auth-two-fa.config.js +57 -0
- package/server/authentication/providers/two-fa/auth-two-fa.config.js.map +1 -0
- package/server/authentication/{dto/two-fa-verify.dto.js → providers/two-fa/auth-two-fa.dtos.js} +8 -6
- package/server/authentication/providers/two-fa/auth-two-fa.dtos.js.map +1 -0
- package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js +6 -0
- package/server/authentication/providers/two-fa/auth-two-fa.interfaces.js.map +1 -0
- package/server/authentication/utils/crypt-secret.js +1 -5
- package/server/authentication/utils/crypt-secret.js.map +1 -1
- package/server/common/constants.js +1 -5
- package/server/common/constants.js.map +1 -1
- package/server/common/decorators.js +1 -5
- package/server/common/decorators.js.map +1 -1
- package/server/common/functions.js +25 -9
- package/server/common/functions.js.map +1 -1
- package/server/common/i18n.js +1 -5
- package/server/common/i18n.js.map +1 -1
- package/server/common/image.js +1 -5
- package/server/common/image.js.map +1 -1
- package/server/common/interfaces.js +1 -5
- package/server/common/interfaces.js.map +1 -1
- package/server/common/qrcode.js +1 -5
- package/server/common/qrcode.js.map +1 -1
- package/server/common/shared.js +6 -6
- package/server/common/shared.js.map +1 -1
- package/server/configuration/config.constants.js +1 -5
- package/server/configuration/config.constants.js.map +1 -1
- package/server/configuration/config.environment.js +2 -6
- package/server/configuration/config.environment.js.map +1 -1
- package/server/configuration/config.interfaces.js +1 -5
- package/server/configuration/config.interfaces.js.map +1 -1
- package/server/configuration/config.loader.js +1 -5
- package/server/configuration/config.loader.js.map +1 -1
- package/server/configuration/config.logger.js +4 -8
- package/server/configuration/config.logger.js.map +1 -1
- package/server/configuration/config.validation.js +7 -5
- package/server/configuration/config.validation.js.map +1 -1
- package/server/infrastructure/cache/adapters/mysql-cache.adapter.js +9 -7
- package/server/infrastructure/cache/adapters/mysql-cache.adapter.js.map +1 -1
- package/server/infrastructure/cache/adapters/redis-cache.adapter.js +1 -5
- package/server/infrastructure/cache/adapters/redis-cache.adapter.js.map +1 -1
- package/server/infrastructure/cache/cache.config.js +1 -5
- package/server/infrastructure/cache/cache.config.js.map +1 -1
- package/server/infrastructure/cache/cache.decorator.js +9 -7
- package/server/infrastructure/cache/cache.decorator.js.map +1 -1
- package/server/infrastructure/cache/cache.e2e-spec.js +1 -5
- package/server/infrastructure/cache/cache.e2e-spec.js.map +1 -1
- package/server/infrastructure/cache/cache.module.js +1 -5
- package/server/infrastructure/cache/cache.module.js.map +1 -1
- package/server/infrastructure/cache/schemas/mysql-cache.interface.js +1 -5
- package/server/infrastructure/cache/schemas/mysql-cache.interface.js.map +1 -1
- package/server/infrastructure/cache/schemas/mysql-cache.schema.js +1 -5
- package/server/infrastructure/cache/schemas/mysql-cache.schema.js.map +1 -1
- package/server/infrastructure/cache/services/cache.service.js +1 -5
- package/server/infrastructure/cache/services/cache.service.js.map +1 -1
- package/server/infrastructure/context/context.module.js +1 -5
- package/server/infrastructure/context/context.module.js.map +1 -1
- package/server/infrastructure/context/interceptors/context.interceptor.js +1 -5
- package/server/infrastructure/context/interceptors/context.interceptor.js.map +1 -1
- package/server/infrastructure/context/interceptors/context.interceptor.spec.js +2 -6
- package/server/infrastructure/context/interceptors/context.interceptor.spec.js.map +1 -1
- package/server/infrastructure/context/interfaces/context-store.interface.js +1 -5
- package/server/infrastructure/context/interfaces/context-store.interface.js.map +1 -1
- package/server/infrastructure/context/services/context-manager.service.js +1 -5
- package/server/infrastructure/context/services/context-manager.service.js.map +1 -1
- package/server/infrastructure/context/services/context-manager.service.spec.js +1 -5
- package/server/infrastructure/context/services/context-manager.service.spec.js.map +1 -1
- package/server/infrastructure/database/columns.js +1 -5
- package/server/infrastructure/database/columns.js.map +1 -1
- package/server/infrastructure/database/configuration.js +1 -5
- package/server/infrastructure/database/configuration.js.map +1 -1
- package/server/infrastructure/database/constants.js +2 -6
- package/server/infrastructure/database/constants.js.map +1 -1
- package/server/infrastructure/database/database.config.js +1 -5
- package/server/infrastructure/database/database.config.js.map +1 -1
- package/server/infrastructure/database/database.logger.js +1 -5
- package/server/infrastructure/database/database.logger.js.map +1 -1
- package/server/infrastructure/database/database.module.js +1 -5
- package/server/infrastructure/database/database.module.js.map +1 -1
- package/server/infrastructure/database/interfaces/database.interface.js +1 -5
- package/server/infrastructure/database/interfaces/database.interface.js.map +1 -1
- package/server/infrastructure/database/schema.js +1 -5
- package/server/infrastructure/database/schema.js.map +1 -1
- package/server/infrastructure/database/scripts/create-user.js +1 -5
- package/server/infrastructure/database/scripts/create-user.js.map +1 -1
- package/server/infrastructure/database/scripts/db.js +1 -5
- package/server/infrastructure/database/scripts/db.js.map +1 -1
- package/server/infrastructure/database/scripts/seed/main.js +1 -5
- package/server/infrastructure/database/scripts/seed/main.js.map +1 -1
- package/server/infrastructure/database/scripts/seed/usersgroups.js +1 -5
- package/server/infrastructure/database/scripts/seed/usersgroups.js.map +1 -1
- package/server/infrastructure/database/utils.js +1 -5
- package/server/infrastructure/database/utils.js.map +1 -1
- package/server/infrastructure/mailer/interfaces/mail.interface.js +1 -5
- package/server/infrastructure/mailer/interfaces/mail.interface.js.map +1 -1
- package/server/infrastructure/mailer/mailer.config.js +1 -5
- package/server/infrastructure/mailer/mailer.config.js.map +1 -1
- package/server/infrastructure/mailer/mailer.module.js +1 -5
- package/server/infrastructure/mailer/mailer.module.js.map +1 -1
- package/server/infrastructure/mailer/mailer.service.js +1 -5
- package/server/infrastructure/mailer/mailer.service.js.map +1 -1
- package/server/infrastructure/mailer/mailer.service.spec.js +2 -6
- package/server/infrastructure/mailer/mailer.service.spec.js.map +1 -1
- package/server/infrastructure/scheduler/scheduler.constants.js +1 -5
- package/server/infrastructure/scheduler/scheduler.constants.js.map +1 -1
- package/server/infrastructure/scheduler/scheduler.module.js +1 -5
- package/server/infrastructure/scheduler/scheduler.module.js.map +1 -1
- package/server/infrastructure/websocket/adapters/cluster.adapter.js +1 -5
- package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
- package/server/infrastructure/websocket/adapters/redis.adapter.js +1 -5
- package/server/infrastructure/websocket/adapters/redis.adapter.js.map +1 -1
- package/server/infrastructure/websocket/adapters/web-socket.adapter.js +1 -5
- package/server/infrastructure/websocket/adapters/web-socket.adapter.js.map +1 -1
- package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js +1 -5
- package/server/infrastructure/websocket/decorators/web-socket-user.decorator.js.map +1 -1
- package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js +1 -5
- package/server/infrastructure/websocket/interfaces/auth-socket-io.interface.js.map +1 -1
- package/server/infrastructure/websocket/utils.js +1 -5
- package/server/infrastructure/websocket/utils.js.map +1 -1
- package/server/infrastructure/websocket/web-socket.config.js +1 -5
- package/server/infrastructure/websocket/web-socket.config.js.map +1 -1
- package/server/main.js +5 -0
- package/server/main.js.map +1 -1
- package/static/assets/pdfjs/build/pdf.mjs +724 -745
- package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
- package/static/assets/pdfjs/build/pdf.sandbox.mjs +2 -2
- package/static/assets/pdfjs/build/pdf.worker.mjs +706 -193
- package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
- package/static/assets/pdfjs/version +1 -1
- package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +5 -5
- package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +1 -0
- package/static/assets/pdfjs/web/locale/fur/viewer.ftl +5 -0
- package/static/assets/pdfjs/web/locale/kk/viewer.ftl +28 -0
- package/static/assets/pdfjs/web/locale/ml/viewer.ftl +4 -0
- package/static/assets/pdfjs/web/locale/ru/viewer.ftl +3 -3
- package/static/assets/pdfjs/web/viewer.css +207 -65
- package/static/assets/pdfjs/web/viewer.html +11 -10
- package/static/assets/pdfjs/web/viewer.mjs +850 -270
- package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
- package/static/assets/pdfjs/web/wasm/LICENSE_JBIG2 +196 -0
- package/static/assets/pdfjs/web/wasm/LICENSE_PDFJS_JBIG2 +13 -0
- package/static/assets/pdfjs/web/wasm/jbig2.wasm +0 -0
- package/static/chunk-22TZP6HW.js +1 -0
- package/static/{chunk-U5E5H2DD.js → chunk-27ATUHBH.js} +1 -1
- package/static/{chunk-HZAB6F4Q.js → chunk-2CKLZ3FM.js} +1 -1
- package/static/{chunk-XZHWESIY.js → chunk-2QZPX7LO.js} +1 -1
- package/static/{chunk-UOK3LKSX.js → chunk-2R6IBBPZ.js} +1 -1
- package/static/{chunk-DVCN3P7Q.js → chunk-4FIGEBNL.js} +1 -1
- package/static/chunk-4P3JABAP.js +13 -0
- package/static/chunk-5CZOSAMZ.js +1 -0
- package/static/{chunk-RBTLSPYJ.js → chunk-677WUBCT.js} +1 -1
- package/static/{chunk-KEZNIIFH.js → chunk-74CAHBFM.js} +1 -1
- package/static/{chunk-WRK2FTKU.js → chunk-7GWW6MJO.js} +1 -1
- package/static/{chunk-EKWB5W72.js → chunk-7WOPGQXB.js} +1 -1
- package/static/{chunk-IMFO2MI7.js → chunk-A4UGPSWX.js} +1 -1
- package/static/{chunk-KDUAB76O.js → chunk-AHO37FKW.js} +1 -1
- package/static/chunk-AQCXMKP3.js +1 -0
- package/static/chunk-B6PDYCRO.js +3 -0
- package/static/{chunk-PPJCVBJH.js → chunk-CU76ATCF.js} +1 -1
- package/static/{chunk-ARS47O5X.js → chunk-CWYHOPOP.js} +1 -1
- package/static/{chunk-CSVPAZHK.js → chunk-E5WI5725.js} +1 -1
- package/static/{chunk-XX3JPJUM.js → chunk-FC5HTKVM.js} +1 -1
- package/static/{chunk-QGHNJVJ6.js → chunk-FOSM7EYI.js} +1 -1
- package/static/{chunk-JAJ7VXMB.js → chunk-GAZO25PI.js} +1 -1
- package/static/{chunk-IHS5LSJJ.js → chunk-GB7ABR5N.js} +1 -1
- package/static/{chunk-27V66YJV.js → chunk-GEHFKZQ5.js} +2 -2
- package/static/{chunk-3QTROEHV.js → chunk-GQFMWVFD.js} +1 -1
- package/static/{chunk-FWQJ4ZCD.js → chunk-GVNTC564.js} +1 -1
- package/static/{chunk-4NIYCYRS.js → chunk-HGL3NYP2.js} +2 -2
- package/static/chunk-HLIWPWRA.js +1 -0
- package/static/{chunk-3VRUIWQG.js → chunk-HNYB3M4S.js} +1 -1
- package/static/{chunk-7HJFIMNF.js → chunk-HUXAUQMN.js} +1 -1
- package/static/chunk-I2XA6PPK.js +1 -0
- package/static/{chunk-RJULB733.js → chunk-ISV3BO6R.js} +1 -1
- package/static/{chunk-R4VYKZVJ.js → chunk-IWWBV6EM.js} +1 -1
- package/static/{chunk-TTWMFWEC.js → chunk-JV3AGU5B.js} +1 -1
- package/static/{chunk-X7NHX5C7.js → chunk-K25E7YGG.js} +1 -1
- package/static/chunk-K46PUTZB.js +1 -0
- package/static/{chunk-D2MLAO5N.js → chunk-KERFLJ56.js} +1 -7
- package/static/{chunk-LZUHREOF.js → chunk-KJD3KFF3.js} +1 -1
- package/static/chunk-KPKSI23S.js +1 -0
- package/static/{chunk-CMNMPG6Z.js → chunk-KZS7CTNR.js} +1 -1
- package/static/{chunk-RNVPQQKT.js → chunk-L5IHUVXL.js} +1 -1
- package/static/{chunk-2GXOVGTD.js → chunk-L7RRX2M3.js} +1 -1
- package/static/{chunk-WFMEUST4.js → chunk-LGWJ2WKU.js} +1 -1
- package/static/{chunk-ZOMRIN3G.js → chunk-MLC7JK2H.js} +2 -2
- package/static/{chunk-76REYAEA.js → chunk-MOHNYW2A.js} +1 -1
- package/static/{chunk-ZHUBWKA2.js → chunk-MTRXBVWZ.js} +1 -1
- package/static/{chunk-QJ22N76V.js → chunk-MZQK6LNV.js} +1 -1
- package/static/{chunk-SDJNZULP.js → chunk-NCDUOVMW.js} +1 -1
- package/static/chunk-NGUAJIGI.js +1 -0
- package/static/chunk-NIPP6JDI.js +1 -0
- package/static/{chunk-VD5JHSDS.js → chunk-NMTBMHUL.js} +1 -1
- package/static/chunk-O4XXMZFX.js +4 -0
- package/static/{chunk-WZPF4LS2.js → chunk-OANZITPM.js} +1 -1
- package/static/{chunk-JNTNMIUH.js → chunk-OGE4SAHU.js} +1 -1
- package/static/{chunk-S6H2ELRY.js → chunk-OI3ME22C.js} +1 -1
- package/static/{chunk-7KAYOR3A.js → chunk-Q3EGCMF5.js} +1 -1
- package/static/chunk-QF2NSHZA.js +1 -0
- package/static/{chunk-3ZBAQTHJ.js → chunk-QIGUDEZF.js} +1 -1
- package/static/{chunk-76M3BMK6.js → chunk-QJVC3SRJ.js} +11 -11
- package/static/{chunk-VBTZDHZ3.js → chunk-QKN6LAAA.js} +1 -1
- package/static/{chunk-JRXG43AA.js → chunk-QRFESU5O.js} +2 -2
- package/static/chunk-QVRVFYJH.js +1 -0
- package/static/{chunk-BCN4T5DO.js → chunk-RFJIPIOK.js} +2 -2
- package/static/{chunk-2RWLNKZH.js → chunk-RLL634K4.js} +1 -1
- package/static/{chunk-D5FQ72R4.js → chunk-RS2OFKWP.js} +1 -1
- package/static/{chunk-CN5YVRFT.js → chunk-RWAAC3A4.js} +1 -1
- package/static/{chunk-LWSCODLD.js → chunk-RWCNTCU5.js} +1 -1
- package/static/{chunk-FTFEQDWH.js → chunk-S5Y64DDS.js} +1 -1
- package/static/{chunk-J7474P3L.js → chunk-SLG5KDU6.js} +1 -1
- package/static/chunk-TJ4CVFEL.js +1 -0
- package/static/{chunk-KAUCN24H.js → chunk-TWCGKSYE.js} +1 -1
- package/static/{chunk-PDG7DOEF.js → chunk-UMDRE4S7.js} +1 -1
- package/static/chunk-VRIOLRYR.js +5 -0
- package/static/chunk-VS4O2XDP.js +1 -0
- package/static/{chunk-ZEJLIGAY.js → chunk-VSBFNFOM.js} +1 -1
- package/static/{chunk-XSURUW7C.js → chunk-WN4WXCVK.js} +1 -1
- package/static/{chunk-S44QIK3G.js → chunk-WX7RXW7K.js} +1 -1
- package/static/{chunk-3ZLBVUCX.js → chunk-XC4POKR3.js} +2 -2
- package/static/{chunk-TNCKNU6I.js → chunk-Y4AUYQTG.js} +1 -1
- package/static/{chunk-3MVPXC3U.js → chunk-Y67J3BOL.js} +1 -1
- package/static/{chunk-QTPIEEZW.js → chunk-YMIXHRJQ.js} +1 -7
- package/static/{chunk-VZFZUI6D.js → chunk-ZUNKFAKP.js} +1 -1
- package/static/index.html +3 -3
- package/static/main-QN4UCOC5.js +5 -0
- package/static/{styles-XLLEY5Y3.css → styles-46GLIE7Y.css} +1 -1
- package/server/authentication/constants/auth-ldap.js.map +0 -1
- package/server/authentication/dto/two-fa-verify.dto.js.map +0 -1
- package/server/authentication/guards/auth-two-fa-guard.js.map +0 -1
- package/server/authentication/interfaces/two-fa-setup.interface.js +0 -10
- package/server/authentication/interfaces/two-fa-setup.interface.js.map +0 -1
- package/server/authentication/models/auth-method.js +0 -18
- package/server/authentication/models/auth-method.js.map +0 -1
- package/server/authentication/services/auth-manager.service.js.map +0 -1
- package/server/authentication/services/auth-manager.service.spec.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-database.service.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-database.service.spec.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-ldap.service.js +0 -326
- package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js +0 -534
- package/server/authentication/services/auth-methods/auth-method-ldap.service.spec.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +0 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +0 -1
- package/static/chunk-2YQ4SX3A.js +0 -13
- package/static/chunk-46TJLPJY.js +0 -1
- package/static/chunk-6OEOADR6.js +0 -1
- package/static/chunk-AALPWGPB.js +0 -3
- package/static/chunk-CVXLHSO5.js +0 -1
- package/static/chunk-G7RZN7HN.js +0 -1
- package/static/chunk-LTJNLOX2.js +0 -1
- package/static/chunk-NIKNG2FX.js +0 -1
- package/static/chunk-NNZWSNAW.js +0 -1
- package/static/chunk-NWKBB7J4.js +0 -1
- package/static/chunk-PVYVY3GD.js +0 -1
- package/static/chunk-Q5X5TPAG.js +0 -1
- package/static/chunk-R4VMWCM5.js +0 -1
- package/static/chunk-SNOOCDJD.js +0 -1
- package/static/chunk-SPQH3ATC.js +0 -5
- package/static/chunk-ZCSHU3D7.js +0 -1
- package/static/chunk-ZU5MQTFN.js +0 -4
- package/static/main-5O3KLGIR.js +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/ldap/auth-provider-ldap.service.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { Mocked } from 'jest-mock'\nimport { Client, InvalidCredentialsError } from 'ldapts'\nimport { CONNECT_ERROR_CODE } from '../../../app.constants'\nimport { USER_PERMISSION, USER_ROLE } from '../../../applications/users/constants/user'\nimport { UserModel } from '../../../applications/users/models/user.model'\nimport { AdminUsersManager } from '../../../applications/users/services/admin-users-manager.service'\nimport { UsersManager } from '../../../applications/users/services/users-manager.service'\nimport * as commonFunctions from '../../../common/functions'\nimport { configuration } from '../../../configuration/config.environment'\nimport type { AuthProviderLDAPConfig } from './auth-ldap.config'\nimport { LDAP_COMMON_ATTR, LDAP_LOGIN_ATTR } from './auth-ldap.constants'\nimport { AuthProviderLDAP } from './auth-provider-ldap.service'\n\njest.mock('ldapts', () => {\n const actual = jest.requireActual('ldapts')\n const mockClientInstance = {\n bind: jest.fn(),\n search: jest.fn(),\n unbind: jest.fn()\n }\n const Client = jest.fn().mockImplementation(() => mockClientInstance)\n return { ...actual, Client }\n})\n\nconst buildUser = (overrides: Partial<UserModel> = {}) =>\n ({\n id: 0,\n login: 'john',\n email: 'old@example.org',\n password: 'hashed',\n role: USER_ROLE.USER,\n isGuest: false,\n isActive: true,\n isAdmin: false,\n makePaths: jest.fn().mockResolvedValue(undefined),\n setFullName: jest.fn(),\n ...overrides\n }) as any\n\nconst ldapClient = {\n bind: jest.fn(),\n search: jest.fn(),\n unbind: jest.fn()\n}\n;(Client as Mocked<any>).mockImplementation(() => ldapClient)\n\ndescribe(AuthProviderLDAP.name, () => {\n let authProviderLDAP: AuthProviderLDAP\n let usersManager: Mocked<UsersManager>\n let adminUsersManager: Mocked<AdminUsersManager>\n\n type LdapConfigOverrides = Omit<Partial<AuthProviderLDAPConfig>, 'attributes' | 'options'> & {\n attributes?: Partial<AuthProviderLDAPConfig['attributes']>\n options?: Partial<AuthProviderLDAPConfig['options']>\n }\n\n const setLdapConfig = (overrides: LdapConfigOverrides = {}) => {\n const base: AuthProviderLDAPConfig = {\n servers: ['ldap://localhost:389'],\n attributes: { login: LDAP_LOGIN_ATTR.UID, email: LDAP_COMMON_ATTR.MAIL },\n baseDN: 'ou=people,dc=example,dc=org',\n filter: '',\n options: {\n autoCreateUser: true,\n autoCreatePermissions: [],\n enablePasswordAuthFallback: true\n }\n }\n const next: AuthProviderLDAPConfig = {\n ...base,\n ...overrides,\n attributes: { ...base.attributes, ...(overrides.attributes || {}) },\n options: { ...base.options, ...(overrides.options || {}) }\n }\n configuration.auth.ldap = next\n ;(authProviderLDAP as any).ldapConfig = next\n ;(authProviderLDAP as any).isAD = [LDAP_LOGIN_ATTR.SAM, LDAP_LOGIN_ATTR.UPN].includes(next.attributes.login)\n ;(authProviderLDAP as any).hasServiceBind = Boolean(next.serviceBindDN && next.serviceBindPassword)\n }\n\n const mockBindResolve = () => {\n ldapClient.bind.mockResolvedValue(undefined)\n ldapClient.unbind.mockResolvedValue(undefined)\n }\n\n const mockBindRejectInvalid = (message = 'invalid') => {\n ldapClient.bind.mockRejectedValue(new InvalidCredentialsError(message))\n ldapClient.unbind.mockResolvedValue(undefined)\n }\n\n const mockSearchEntries = (entries: any[]) => {\n ldapClient.search.mockResolvedValue({ searchEntries: entries })\n }\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n AuthProviderLDAP,\n {\n provide: UsersManager,\n useValue: {\n findUser: jest.fn(),\n logUser: jest.fn(),\n updateAccesses: jest.fn().mockResolvedValue(undefined),\n validateAppPassword: jest.fn(),\n fromUserId: jest.fn()\n }\n },\n {\n provide: AdminUsersManager,\n useValue: {\n createUserOrGuest: jest.fn(),\n updateUserOrGuest: jest.fn()\n }\n }\n ]\n }).compile()\n\n module.useLogger(['fatal'])\n authProviderLDAP = module.get<AuthProviderLDAP>(AuthProviderLDAP)\n adminUsersManager = module.get<Mocked<AdminUsersManager>>(AdminUsersManager)\n usersManager = module.get<Mocked<UsersManager>>(UsersManager)\n })\n\n beforeEach(() => {\n jest.clearAllMocks()\n setLdapConfig()\n usersManager.updateAccesses.mockResolvedValue(undefined)\n })\n\n afterEach(() => {\n jest.restoreAllMocks()\n })\n\n it('should be defined', () => {\n expect(authProviderLDAP).toBeDefined()\n expect(usersManager).toBeDefined()\n expect(adminUsersManager).toBeDefined()\n expect(ldapClient).toBeDefined()\n })\n\n it('should authenticate a guest user via database and bypass LDAP', async () => {\n const guestUser: any = { id: 1, login: 'guest1', isGuest: true, isActive: true }\n usersManager.findUser.mockResolvedValue(guestUser)\n const dbAuthResult: any = { ...guestUser, token: 'jwt' }\n usersManager.logUser.mockResolvedValue(dbAuthResult)\n\n const res = await authProviderLDAP.validateUser('guest1', 'pass', '127.0.0.1')\n\n expect(res).toEqual(dbAuthResult)\n expect(usersManager.logUser).toHaveBeenCalledWith(guestUser, 'pass', '127.0.0.1', undefined)\n expect(Client).not.toHaveBeenCalled()\n })\n\n it('should bypass LDAP when scope is provided', async () => {\n const user = buildUser({ id: 12 })\n usersManager.findUser.mockResolvedValue(user)\n usersManager.logUser.mockResolvedValue(user)\n\n const res = await authProviderLDAP.validateUser('john', 'app-password', '10.0.0.2', 'webdav' as any)\n\n expect(res).toBe(user)\n expect(usersManager.logUser).toHaveBeenCalledWith(user, 'app-password', '10.0.0.2', 'webdav')\n expect(Client).not.toHaveBeenCalled()\n })\n\n it('should throw FORBIDDEN for locked account', async () => {\n usersManager.findUser.mockResolvedValue({ login: 'john', isGuest: false, isActive: false } as UserModel)\n const loggerErrorSpy = jest.spyOn(authProviderLDAP['logger'], 'error').mockImplementation(() => undefined as any)\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/account locked/i)\n expect(loggerErrorSpy).toHaveBeenCalled()\n })\n\n it('should return null on invalid LDAP credentials without fallback', async () => {\n const existingUser: any = buildUser({ id: 1 })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindRejectInvalid('invalid credentials')\n\n const res = await authProviderLDAP.validateUser('john', 'badpwd', '10.0.0.1')\n\n expect(res).toBeNull()\n expect(usersManager.logUser).not.toHaveBeenCalled()\n expect(usersManager.updateAccesses).not.toHaveBeenCalled()\n })\n\n it('should return null when LDAP search yields no entries or throws', async () => {\n const existingUser: any = buildUser({ id: 10 })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([])\n\n const resA = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(resA).toBeNull()\n\n ldapClient.search.mockRejectedValue(new Error('search failed'))\n const resB = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(resB).toBeNull()\n expect(usersManager.updateAccesses).not.toHaveBeenCalled()\n })\n\n it('should fallback to local auth when LDAP is unavailable and fallback is enabled', async () => {\n const existingUser: any = buildUser({ id: 2 })\n usersManager.findUser.mockResolvedValue(existingUser)\n usersManager.logUser.mockResolvedValue(existingUser)\n const err = Object.assign(new Error('connect ECONNREFUSED'), { code: Array.from(CONNECT_ERROR_CODE)[0] })\n ldapClient.bind.mockRejectedValue({ errors: [err] })\n ldapClient.unbind.mockResolvedValue(undefined)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd', '10.0.0.3')\n\n expect(res).toBe(existingUser)\n expect(usersManager.logUser).toHaveBeenCalledWith(existingUser, 'pwd', '10.0.0.3')\n })\n\n it('should throw SERVICE_UNAVAILABLE when LDAP is unavailable and fallback is disabled', async () => {\n setLdapConfig({ options: { enablePasswordAuthFallback: false } })\n const existingUser: any = buildUser({ id: 3 })\n usersManager.findUser.mockResolvedValue(existingUser)\n const err = Object.assign(new Error('connect ECONNREFUSED'), { code: Array.from(CONNECT_ERROR_CODE)[0] })\n ldapClient.bind.mockRejectedValue({ errors: [err] })\n ldapClient.unbind.mockResolvedValue(undefined)\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/authentication service error/i)\n })\n\n it('should allow admin local fallback when LDAP is unavailable even if fallback is disabled', async () => {\n setLdapConfig({ options: { enablePasswordAuthFallback: false } })\n const existingUser: any = buildUser({ id: 4, isAdmin: true })\n usersManager.findUser.mockResolvedValue(existingUser)\n usersManager.logUser.mockResolvedValue(existingUser)\n const err = Object.assign(new Error('connect ECONNREFUSED'), { code: Array.from(CONNECT_ERROR_CODE)[0] })\n ldapClient.bind.mockRejectedValue({ errors: [err] })\n ldapClient.unbind.mockResolvedValue(undefined)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(res).toBe(existingUser)\n expect(usersManager.logUser).toHaveBeenCalledWith(existingUser, 'pwd', undefined)\n })\n\n it('should return null when LDAP entry lacks required fields', async () => {\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n mockSearchEntries([{ uid: 'jane', cn: 'Jane Doe', mail: undefined }])\n const loggerErrorSpy = jest.spyOn(authProviderLDAP['logger'], 'error').mockImplementation(() => undefined as any)\n\n const res = await authProviderLDAP.validateUser('jane', 'pwd')\n\n expect(res).toBeNull()\n expect(adminUsersManager.createUserOrGuest).not.toHaveBeenCalled()\n expect(loggerErrorSpy).toHaveBeenCalled()\n })\n\n it('should throw UNAUTHORIZED when autoCreateUser is disabled', async () => {\n setLdapConfig({ options: { autoCreateUser: false } })\n usersManager.findUser.mockResolvedValue(null)\n const checkAuthSpy = jest.spyOn<any, any>(authProviderLDAP as any, 'checkAuth').mockResolvedValue({\n uid: 'john',\n mail: 'john@example.org'\n })\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/user not found/i)\n checkAuthSpy.mockRestore()\n })\n\n it('should create a new admin user with permissions and name parsed from LDAP', async () => {\n setLdapConfig({\n options: {\n adminGroup: 'Admins',\n autoCreatePermissions: [USER_PERMISSION.PERSONAL_SPACE, USER_PERMISSION.WEBDAV]\n }\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n mockSearchEntries([\n {\n uid: 'john',\n givenName: 'John',\n sn: 'Doe',\n mail: 'john@example.org',\n memberOf: ['CN=Admins,OU=Groups,DC=example,DC=org']\n }\n ])\n const createdUser: any = { id: 2, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd', '192.168.1.10')\n\n expect(adminUsersManager.createUserOrGuest).toHaveBeenCalledWith(\n {\n login: 'john',\n email: 'john@example.org',\n password: 'pwd',\n role: USER_ROLE.ADMINISTRATOR,\n firstName: 'John',\n lastName: 'Doe',\n permissions: 'personal_space,webdav_access'\n },\n USER_ROLE.ADMINISTRATOR\n )\n expect(res).toBe(createdUser)\n expect(usersManager.updateAccesses).toHaveBeenCalledWith(createdUser, '192.168.1.10', true)\n })\n\n it('should accept adminGroup as full DN', async () => {\n setLdapConfig({\n options: {\n adminGroup: 'CN=Admins,OU=Groups,DC=example,DC=org'\n }\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n mockSearchEntries([\n {\n uid: 'john',\n givenName: 'John',\n sn: 'Doe',\n mail: 'john@example.org',\n memberOf: ['CN=Admins,OU=Groups,DC=example,DC=org']\n }\n ])\n const createdUser: any = { id: 9, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(adminUsersManager.createUserOrGuest).toHaveBeenCalledWith(\n expect.objectContaining({ role: USER_ROLE.ADMINISTRATOR }),\n USER_ROLE.ADMINISTRATOR\n )\n expect(res).toBe(createdUser)\n })\n\n it('should use groupOfNames to detect admin membership when memberOf is missing', async () => {\n setLdapConfig({ options: { adminGroup: 'Admins' } })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n ldapClient.search\n .mockResolvedValueOnce({\n searchEntries: [\n {\n uid: 'john',\n cn: 'John Doe',\n mail: 'john@example.org',\n dn: 'uid=john,ou=people,dc=example,dc=org'\n }\n ]\n })\n .mockResolvedValueOnce({ searchEntries: [{ cn: 'Admins' }] })\n const createdUser: any = { id: 3, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(adminUsersManager.createUserOrGuest).toHaveBeenCalledWith(\n expect.objectContaining({ role: USER_ROLE.ADMINISTRATOR }),\n USER_ROLE.ADMINISTRATOR\n )\n expect(res).toBe(createdUser)\n })\n\n it('should use service bind for LDAP searches when configured', async () => {\n setLdapConfig({\n serviceBindDN: 'cn=svc,dc=example,dc=org',\n serviceBindPassword: 'secret'\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n ldapClient.search.mockResolvedValueOnce({\n searchEntries: [{ uid: 'john', cn: 'John Doe', mail: 'john@example.org', dn: 'uid=john,ou=people,dc=example,dc=org' }]\n })\n const createdUser: any = { id: 8, login: 'john', isGuest: false, isActive: true, makePaths: jest.fn() }\n adminUsersManager.createUserOrGuest.mockResolvedValue(createdUser)\n usersManager.fromUserId.mockResolvedValue(createdUser)\n\n await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(ldapClient.bind).toHaveBeenCalledWith('cn=svc,dc=example,dc=org', 'secret')\n expect(ldapClient.bind).toHaveBeenCalledWith('uid=john,ou=people,dc=example,dc=org', 'pwd')\n })\n\n it('should return null when service bind is set but user DN is not found', async () => {\n setLdapConfig({\n serviceBindDN: 'cn=svc,dc=example,dc=org',\n serviceBindPassword: 'secret'\n })\n usersManager.findUser.mockResolvedValue(null)\n mockBindResolve()\n ldapClient.search.mockResolvedValueOnce({ searchEntries: [] })\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(res).toBeNull()\n expect(ldapClient.bind).toHaveBeenCalledWith('cn=svc,dc=example,dc=org', 'secret')\n expect(ldapClient.bind).not.toHaveBeenCalledWith('uid=john,ou=people,dc=example,dc=org', 'pwd')\n })\n\n it('should return null when user bind fails after service bind', async () => {\n setLdapConfig({\n serviceBindDN: 'cn=svc,dc=example,dc=org',\n serviceBindPassword: 'secret'\n })\n usersManager.findUser.mockResolvedValue(null)\n ldapClient.unbind.mockResolvedValue(undefined)\n ldapClient.bind.mockResolvedValueOnce(undefined).mockRejectedValueOnce(new InvalidCredentialsError('invalid credentials'))\n ldapClient.search.mockResolvedValueOnce({\n searchEntries: [{ dn: 'uid=john,ou=people,dc=example,dc=org', cn: 'John Doe' }]\n })\n\n const res = await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(res).toBeNull()\n expect(ldapClient.bind).toHaveBeenCalledWith('cn=svc,dc=example,dc=org', 'secret')\n expect(ldapClient.bind).toHaveBeenCalledWith('uid=john,ou=people,dc=example,dc=org', 'pwd')\n })\n\n it('should keep admin role when adminGroup is not configured', async () => {\n setLdapConfig({ options: { adminGroup: undefined } })\n const existingUser: any = buildUser({ id: 5, role: USER_ROLE.ADMINISTRATOR })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([{ uid: 'john', cn: 'John Doe', mail: 'john@example.org' }])\n jest.spyOn(commonFunctions, 'comparePassword').mockResolvedValue(true)\n\n await authProviderLDAP.validateUser('john', 'pwd')\n\n expect(adminUsersManager.updateUserOrGuest).toHaveBeenCalled()\n const updateArgs = adminUsersManager.updateUserOrGuest.mock.calls[0][1]\n expect(updateArgs).toEqual(expect.objectContaining({ email: 'john@example.org' }))\n expect(updateArgs).toEqual(expect.not.objectContaining({ role: expect.anything() }))\n })\n\n it('should update existing user and avoid reassigning password locally', async () => {\n const existingUser: any = buildUser({ id: 6 })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([{ uid: 'john', displayName: 'Jane Doe', mail: 'john@example.org' }])\n const compareSpy = jest.spyOn(commonFunctions, 'comparePassword').mockResolvedValue(false)\n const splitSpy = jest.spyOn(commonFunctions, 'splitFullName').mockReturnValue({ firstName: 'Jane', lastName: 'Doe' })\n\n const res = await authProviderLDAP.validateUser('john', 'new-plain-password', '127.0.0.2')\n\n expect(adminUsersManager.updateUserOrGuest).toHaveBeenCalledWith(\n 6,\n expect.objectContaining({\n email: 'john@example.org',\n firstName: 'Jane',\n lastName: 'Doe'\n })\n )\n expect(existingUser.password).toBe('hashed')\n expect(existingUser).toMatchObject({ email: 'john@example.org', firstName: 'Jane', lastName: 'Doe' })\n expect(existingUser.setFullName).toHaveBeenCalledWith(true)\n expect(usersManager.updateAccesses).toHaveBeenCalledWith(existingUser, '127.0.0.2', true)\n expect(res).toBe(existingUser)\n\n compareSpy.mockRestore()\n splitSpy.mockRestore()\n })\n\n it('should throw FORBIDDEN when LDAP login does not match user login', async () => {\n const existingUser: any = buildUser({ id: 7, login: 'john' })\n usersManager.findUser.mockResolvedValue(existingUser)\n mockBindResolve()\n mockSearchEntries([{ uid: 'jane', cn: 'Jane Doe', mail: 'jane@example.org' }])\n\n await expect(authProviderLDAP.validateUser('john', 'pwd')).rejects.toThrow(/account matching error/i)\n })\n\n it('should build LDAP logins and filters for AD and standard LDAP', () => {\n setLdapConfig({ attributes: { login: LDAP_LOGIN_ATTR.UPN }, upnSuffix: 'sync-in.com', filter: '(memberOf=cn=staff)' })\n const adLogin = (authProviderLDAP as any).buildLdapLogin('john')\n expect(adLogin).toBe('john@sync-in.com')\n const adFilter = (authProviderLDAP as any).buildUserFilter('SYNC-IN\\\\john', '(memberOf=cn=staff)')\n expect(adFilter).toContain('(sAMAccountName=john)')\n expect(adFilter).toContain('(userPrincipalName=john)')\n expect(adFilter).toContain('(mail=john)')\n expect(adFilter).toContain('(memberOf=cn=staff)')\n\n setLdapConfig({ attributes: { login: LDAP_LOGIN_ATTR.UID }, filter: '(department=IT)' })\n const ldapFilter = (authProviderLDAP as any).buildUserFilter('john', '(department=IT)')\n expect(ldapFilter).toContain('(uid=john)')\n expect(ldapFilter).toContain('(cn=john)')\n expect(ldapFilter).toContain('(mail=john)')\n expect(ldapFilter).toContain('(department=IT)')\n })\n\n it('should normalize LDAP entries for memberOf and array attributes', () => {\n const entry = {\n uid: ['john'],\n mail: ['john@example.org', 'john2@example.org'],\n memberOf: ['CN=Admins,OU=Groups,DC=example,DC=org', 'CN=Staff,OU=Groups,DC=example,DC=org']\n }\n\n const normalized = (authProviderLDAP as any).convertToLdapUserEntry(entry)\n\n expect(normalized.uid).toBe('john')\n expect(normalized.mail).toBe('john@example.org')\n expect(normalized.memberOf).toEqual(['CN=Admins,OU=Groups,DC=example,DC=org', 'Admins', 'CN=Staff,OU=Groups,DC=example,DC=org', 'Staff'])\n })\n\n it('should build LDAP logins for SAM account name when netbiosName is set', () => {\n setLdapConfig({ attributes: { login: LDAP_LOGIN_ATTR.SAM }, netbiosName: 'SYNC' })\n const samLogin = (authProviderLDAP as any).buildLdapLogin('john')\n expect(samLogin).toBe('SYNC\\\\john')\n })\n})\n"],"names":["jest","mock","actual","requireActual","mockClientInstance","bind","fn","search","unbind","Client","mockImplementation","buildUser","overrides","id","login","email","password","role","USER_ROLE","USER","isGuest","isActive","isAdmin","makePaths","mockResolvedValue","undefined","setFullName","ldapClient","describe","AuthProviderLDAP","name","authProviderLDAP","usersManager","adminUsersManager","setLdapConfig","base","servers","attributes","LDAP_LOGIN_ATTR","UID","LDAP_COMMON_ATTR","MAIL","baseDN","filter","options","autoCreateUser","autoCreatePermissions","enablePasswordAuthFallback","next","configuration","auth","ldap","ldapConfig","isAD","SAM","UPN","includes","hasServiceBind","Boolean","serviceBindDN","serviceBindPassword","mockBindResolve","mockBindRejectInvalid","message","mockRejectedValue","InvalidCredentialsError","mockSearchEntries","entries","searchEntries","beforeAll","module","Test","createTestingModule","providers","provide","UsersManager","useValue","findUser","logUser","updateAccesses","validateAppPassword","fromUserId","AdminUsersManager","createUserOrGuest","updateUserOrGuest","compile","useLogger","get","beforeEach","clearAllMocks","afterEach","restoreAllMocks","it","expect","toBeDefined","guestUser","dbAuthResult","token","res","validateUser","toEqual","toHaveBeenCalledWith","not","toHaveBeenCalled","user","toBe","loggerErrorSpy","spyOn","rejects","toThrow","existingUser","toBeNull","resA","Error","resB","err","Object","assign","code","Array","from","CONNECT_ERROR_CODE","errors","uid","cn","mail","checkAuthSpy","mockRestore","adminGroup","USER_PERMISSION","PERSONAL_SPACE","WEBDAV","givenName","sn","memberOf","createdUser","ADMINISTRATOR","firstName","lastName","permissions","objectContaining","mockResolvedValueOnce","dn","mockRejectedValueOnce","commonFunctions","updateArgs","calls","anything","displayName","compareSpy","splitSpy","mockReturnValue","toMatchObject","upnSuffix","adLogin","buildLdapLogin","adFilter","buildUserFilter","toContain","ldapFilter","entry","normalized","convertToLdapUserEntry","netbiosName","samLogin"],"mappings":"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"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
9
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "AuthProviderMySQL", {
|
|
10
6
|
enumerable: true,
|
|
11
7
|
get: function() {
|
|
12
|
-
return
|
|
8
|
+
return AuthProviderMySQL;
|
|
13
9
|
}
|
|
14
10
|
});
|
|
15
11
|
const _common = require("@nestjs/common");
|
|
@@ -24,32 +20,38 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
24
20
|
function _ts_metadata(k, v) {
|
|
25
21
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
26
22
|
}
|
|
27
|
-
let
|
|
23
|
+
let AuthProviderMySQL = class AuthProviderMySQL {
|
|
28
24
|
async validateUser(loginOrEmail, password, ip, scope) {
|
|
29
25
|
let user;
|
|
30
26
|
try {
|
|
31
27
|
user = await this.usersManager.findUser(loginOrEmail, false);
|
|
32
28
|
} catch (e) {
|
|
33
|
-
this.logger.error(
|
|
29
|
+
this.logger.error({
|
|
30
|
+
tag: this.validateUser.name,
|
|
31
|
+
msg: `${e}`
|
|
32
|
+
});
|
|
34
33
|
throw new _common.HttpException(_appconstants.CONNECT_ERROR_CODE.has(e.cause?.code) ? 'Authentication service error' : e.cause?.code || e.message, _common.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
35
34
|
}
|
|
36
35
|
if (!user) {
|
|
37
|
-
this.logger.warn(
|
|
36
|
+
this.logger.warn({
|
|
37
|
+
tag: this.validateUser.name,
|
|
38
|
+
msg: `login or email not found for *${loginOrEmail}*`
|
|
39
|
+
});
|
|
38
40
|
return null;
|
|
39
41
|
}
|
|
40
42
|
return await this.usersManager.logUser(user, password, ip, scope);
|
|
41
43
|
}
|
|
42
44
|
constructor(usersManager){
|
|
43
45
|
this.usersManager = usersManager;
|
|
44
|
-
this.logger = new _common.Logger(
|
|
46
|
+
this.logger = new _common.Logger(AuthProviderMySQL.name);
|
|
45
47
|
}
|
|
46
48
|
};
|
|
47
|
-
|
|
49
|
+
AuthProviderMySQL = _ts_decorate([
|
|
48
50
|
(0, _common.Injectable)(),
|
|
49
51
|
_ts_metadata("design:type", Function),
|
|
50
52
|
_ts_metadata("design:paramtypes", [
|
|
51
53
|
typeof _usersmanagerservice.UsersManager === "undefined" ? Object : _usersmanagerservice.UsersManager
|
|
52
54
|
])
|
|
53
|
-
],
|
|
55
|
+
], AuthProviderMySQL);
|
|
54
56
|
|
|
55
|
-
//# sourceMappingURL=auth-
|
|
57
|
+
//# sourceMappingURL=auth-provider-mysql.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/mysql/auth-provider-mysql.service.ts"],"sourcesContent":["import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'\nimport { CONNECT_ERROR_CODE } from '../../../app.constants'\nimport { UserModel } from '../../../applications/users/models/user.model'\nimport { UsersManager } from '../../../applications/users/services/users-manager.service'\nimport { AUTH_SCOPE } from '../../constants/scope'\nimport { AuthProvider } from '../auth-providers.models'\n\n@Injectable()\nexport class AuthProviderMySQL implements AuthProvider {\n private readonly logger = new Logger(AuthProviderMySQL.name)\n\n constructor(private readonly usersManager: UsersManager) {}\n\n async validateUser(loginOrEmail: string, password: string, ip?: string, scope?: AUTH_SCOPE): Promise<UserModel> {\n let user: UserModel\n try {\n user = await this.usersManager.findUser(loginOrEmail, false)\n } catch (e) {\n this.logger.error({ tag: this.validateUser.name, msg: `${e}` })\n throw new HttpException(\n CONNECT_ERROR_CODE.has(e.cause?.code) ? 'Authentication service error' : e.cause?.code || e.message,\n HttpStatus.INTERNAL_SERVER_ERROR\n )\n }\n if (!user) {\n this.logger.warn({ tag: this.validateUser.name, msg: `login or email not found for *${loginOrEmail}*` })\n return null\n }\n return await this.usersManager.logUser(user, password, ip, scope)\n }\n}\n"],"names":["AuthProviderMySQL","validateUser","loginOrEmail","password","ip","scope","user","usersManager","findUser","e","logger","error","tag","name","msg","HttpException","CONNECT_ERROR_CODE","has","cause","code","message","HttpStatus","INTERNAL_SERVER_ERROR","warn","logUser","Logger"],"mappings":";;;;+BAQaA;;;eAAAA;;;wBARiD;8BAC3B;qCAEN;;;;;;;;;;AAKtB,IAAA,AAAMA,oBAAN,MAAMA;IAKX,MAAMC,aAAaC,YAAoB,EAAEC,QAAgB,EAAEC,EAAW,EAAEC,KAAkB,EAAsB;QAC9G,IAAIC;QACJ,IAAI;YACFA,OAAO,MAAM,IAAI,CAACC,YAAY,CAACC,QAAQ,CAACN,cAAc;QACxD,EAAE,OAAOO,GAAG;YACV,IAAI,CAACC,MAAM,CAACC,KAAK,CAAC;gBAAEC,KAAK,IAAI,CAACX,YAAY,CAACY,IAAI;gBAAEC,KAAK,GAAGL,GAAG;YAAC;YAC7D,MAAM,IAAIM,qBAAa,CACrBC,gCAAkB,CAACC,GAAG,CAACR,EAAES,KAAK,EAAEC,QAAQ,iCAAiCV,EAAES,KAAK,EAAEC,QAAQV,EAAEW,OAAO,EACnGC,kBAAU,CAACC,qBAAqB;QAEpC;QACA,IAAI,CAAChB,MAAM;YACT,IAAI,CAACI,MAAM,CAACa,IAAI,CAAC;gBAAEX,KAAK,IAAI,CAACX,YAAY,CAACY,IAAI;gBAAEC,KAAK,CAAC,8BAA8B,EAAEZ,aAAa,CAAC,CAAC;YAAC;YACtG,OAAO;QACT;QACA,OAAO,MAAM,IAAI,CAACK,YAAY,CAACiB,OAAO,CAAClB,MAAMH,UAAUC,IAAIC;IAC7D;IAlBA,YAAY,AAAiBE,YAA0B,CAAE;aAA5BA,eAAAA;aAFZG,SAAS,IAAIe,cAAM,CAACzB,kBAAkBa,IAAI;IAED;AAmB5D"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
1
|
+
"use strict";
|
|
6
2
|
Object.defineProperty(exports, "__esModule", {
|
|
7
3
|
value: true
|
|
8
4
|
});
|
|
@@ -18,22 +14,22 @@ const _test = require("../../../applications/users/utils/test");
|
|
|
18
14
|
const _functions = require("../../../common/functions");
|
|
19
15
|
const _cacheservice = require("../../../infrastructure/cache/services/cache.service");
|
|
20
16
|
const _constants = require("../../../infrastructure/database/constants");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
describe(
|
|
24
|
-
let
|
|
17
|
+
const _authservice = require("../../auth.service");
|
|
18
|
+
const _authprovidermysqlservice = require("./auth-provider-mysql.service");
|
|
19
|
+
describe(_authprovidermysqlservice.AuthProviderMySQL.name, ()=>{
|
|
20
|
+
let authProviderMySQL;
|
|
25
21
|
let usersManager;
|
|
26
22
|
let userTest;
|
|
27
23
|
beforeAll(async ()=>{
|
|
28
24
|
const module = await _testing.Test.createTestingModule({
|
|
29
25
|
providers: [
|
|
30
|
-
|
|
26
|
+
_authprovidermysqlservice.AuthProviderMySQL,
|
|
31
27
|
_usersmanagerservice.UsersManager,
|
|
32
28
|
_usersqueriesservice.UsersQueries,
|
|
33
29
|
_adminusersmanagerservice.AdminUsersManager,
|
|
34
30
|
_adminusersqueriesservice.AdminUsersQueries,
|
|
35
31
|
{
|
|
36
|
-
provide:
|
|
32
|
+
provide: _authservice.AuthManager,
|
|
37
33
|
useValue: {}
|
|
38
34
|
},
|
|
39
35
|
{
|
|
@@ -50,7 +46,7 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
|
|
|
50
46
|
}
|
|
51
47
|
]
|
|
52
48
|
}).compile();
|
|
53
|
-
|
|
49
|
+
authProviderMySQL = module.get(_authprovidermysqlservice.AuthProviderMySQL);
|
|
54
50
|
usersManager = module.get(_usersmanagerservice.UsersManager);
|
|
55
51
|
module.useLogger([
|
|
56
52
|
'fatal'
|
|
@@ -60,7 +56,7 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
|
|
|
60
56
|
usersManager.updateAccesses = jest.fn(()=>Promise.resolve());
|
|
61
57
|
});
|
|
62
58
|
it('should be defined', ()=>{
|
|
63
|
-
expect(
|
|
59
|
+
expect(authProviderMySQL).toBeDefined();
|
|
64
60
|
expect(usersManager).toBeDefined();
|
|
65
61
|
expect(userTest).toBeDefined();
|
|
66
62
|
});
|
|
@@ -70,7 +66,7 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
|
|
|
70
66
|
...userTest,
|
|
71
67
|
password: await (0, _functions.hashPassword)(userTest.password)
|
|
72
68
|
});
|
|
73
|
-
expect(await
|
|
69
|
+
expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeDefined();
|
|
74
70
|
expect(userTest.makePaths).toHaveBeenCalled();
|
|
75
71
|
});
|
|
76
72
|
it('should not validate the user', async ()=>{
|
|
@@ -85,11 +81,11 @@ describe(_authmethoddatabaseservice.AuthMethodDatabase.name, ()=>{
|
|
|
85
81
|
code: Array.from(_appconstants.CONNECT_ERROR_CODE)[0]
|
|
86
82
|
}
|
|
87
83
|
}));
|
|
88
|
-
expect(await
|
|
89
|
-
expect(await
|
|
90
|
-
await expect(
|
|
91
|
-
await expect(
|
|
84
|
+
expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull();
|
|
85
|
+
expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull();
|
|
86
|
+
await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/db error/i);
|
|
87
|
+
await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/authentication service/i);
|
|
92
88
|
});
|
|
93
89
|
});
|
|
94
90
|
|
|
95
|
-
//# sourceMappingURL=auth-
|
|
91
|
+
//# sourceMappingURL=auth-provider-mysql.service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/mysql/auth-provider-mysql.service.spec.ts"],"sourcesContent":["import { Test, TestingModule } from '@nestjs/testing'\nimport { CONNECT_ERROR_CODE } from '../../../app.constants'\nimport { NotificationsManager } from '../../../applications/notifications/services/notifications-manager.service'\nimport { UserModel } from '../../../applications/users/models/user.model'\nimport { AdminUsersManager } from '../../../applications/users/services/admin-users-manager.service'\nimport { AdminUsersQueries } from '../../../applications/users/services/admin-users-queries.service'\nimport { UsersManager } from '../../../applications/users/services/users-manager.service'\nimport { UsersQueries } from '../../../applications/users/services/users-queries.service'\nimport { generateUserTest } from '../../../applications/users/utils/test'\nimport { hashPassword } from '../../../common/functions'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { DB_TOKEN_PROVIDER } from '../../../infrastructure/database/constants'\nimport { AuthManager } from '../../auth.service'\nimport { AuthProviderMySQL } from './auth-provider-mysql.service'\n\ndescribe(AuthProviderMySQL.name, () => {\n let authProviderMySQL: AuthProviderMySQL\n let usersManager: UsersManager\n let userTest: UserModel\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n AuthProviderMySQL,\n UsersManager,\n UsersQueries,\n AdminUsersManager,\n AdminUsersQueries,\n { provide: AuthManager, useValue: {} },\n { provide: DB_TOKEN_PROVIDER, useValue: {} },\n { provide: Cache, useValue: {} },\n { provide: NotificationsManager, useValue: {} }\n ]\n }).compile()\n\n authProviderMySQL = module.get<AuthProviderMySQL>(AuthProviderMySQL)\n usersManager = module.get<UsersManager>(UsersManager)\n module.useLogger(['fatal'])\n // mocks\n userTest = new UserModel(generateUserTest(), false)\n usersManager.updateAccesses = jest.fn(() => Promise.resolve())\n })\n\n it('should be defined', () => {\n expect(authProviderMySQL).toBeDefined()\n expect(usersManager).toBeDefined()\n expect(userTest).toBeDefined()\n })\n\n it('should validate the user', async () => {\n userTest.makePaths = jest.fn()\n usersManager.findUser = jest.fn().mockReturnValue({ ...userTest, password: await hashPassword(userTest.password) })\n expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeDefined()\n expect(userTest.makePaths).toHaveBeenCalled()\n })\n\n it('should not validate the user', async () => {\n usersManager.findUser = jest\n .fn()\n .mockReturnValueOnce(null)\n .mockReturnValueOnce({ ...userTest, password: await hashPassword('bar') })\n .mockRejectedValueOnce({ message: 'db error', code: 'OTHER' })\n .mockRejectedValueOnce(\n new Error('Authentication service error', {\n cause: { code: Array.from(CONNECT_ERROR_CODE)[0] }\n })\n )\n expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull()\n expect(await authProviderMySQL.validateUser(userTest.login, userTest.password)).toBeNull()\n await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/db error/i)\n await expect(authProviderMySQL.validateUser(userTest.login, userTest.password)).rejects.toThrow(/authentication service/i)\n })\n})\n"],"names":["describe","AuthProviderMySQL","name","authProviderMySQL","usersManager","userTest","beforeAll","module","Test","createTestingModule","providers","UsersManager","UsersQueries","AdminUsersManager","AdminUsersQueries","provide","AuthManager","useValue","DB_TOKEN_PROVIDER","Cache","NotificationsManager","compile","get","useLogger","UserModel","generateUserTest","updateAccesses","jest","fn","Promise","resolve","it","expect","toBeDefined","makePaths","findUser","mockReturnValue","password","hashPassword","validateUser","login","toHaveBeenCalled","mockReturnValueOnce","mockRejectedValueOnce","message","code","Error","cause","Array","from","CONNECT_ERROR_CODE","toBeNull","rejects","toThrow"],"mappings":";;;;yBAAoC;8BACD;6CACE;2BACX;0CACQ;0CACA;qCACL;qCACA;sBACI;2BACJ;8BACP;2BACY;6BACN;0CACM;AAElCA,SAASC,2CAAiB,CAACC,IAAI,EAAE;IAC/B,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBACTT,2CAAiB;gBACjBU,iCAAY;gBACZC,iCAAY;gBACZC,2CAAiB;gBACjBC,2CAAiB;gBACjB;oBAAEC,SAASC,wBAAW;oBAAEC,UAAU,CAAC;gBAAE;gBACrC;oBAAEF,SAASG,4BAAiB;oBAAED,UAAU,CAAC;gBAAE;gBAC3C;oBAAEF,SAASI,mBAAK;oBAAEF,UAAU,CAAC;gBAAE;gBAC/B;oBAAEF,SAASK,iDAAoB;oBAAEH,UAAU,CAAC;gBAAE;aAC/C;QACH,GAAGI,OAAO;QAEVlB,oBAAoBI,OAAOe,GAAG,CAAoBrB,2CAAiB;QACnEG,eAAeG,OAAOe,GAAG,CAAeX,iCAAY;QACpDJ,OAAOgB,SAAS,CAAC;YAAC;SAAQ;QAC1B,QAAQ;QACRlB,WAAW,IAAImB,oBAAS,CAACC,IAAAA,sBAAgB,KAAI;QAC7CrB,aAAasB,cAAc,GAAGC,KAAKC,EAAE,CAAC,IAAMC,QAAQC,OAAO;IAC7D;IAEAC,GAAG,qBAAqB;QACtBC,OAAO7B,mBAAmB8B,WAAW;QACrCD,OAAO5B,cAAc6B,WAAW;QAChCD,OAAO3B,UAAU4B,WAAW;IAC9B;IAEAF,GAAG,4BAA4B;QAC7B1B,SAAS6B,SAAS,GAAGP,KAAKC,EAAE;QAC5BxB,aAAa+B,QAAQ,GAAGR,KAAKC,EAAE,GAAGQ,eAAe,CAAC;YAAE,GAAG/B,QAAQ;YAAEgC,UAAU,MAAMC,IAAAA,uBAAY,EAACjC,SAASgC,QAAQ;QAAE;QACjHL,OAAO,MAAM7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGJ,WAAW;QAC3FD,OAAO3B,SAAS6B,SAAS,EAAEO,gBAAgB;IAC7C;IAEAV,GAAG,gCAAgC;QACjC3B,aAAa+B,QAAQ,GAAGR,KACrBC,EAAE,GACFc,mBAAmB,CAAC,MACpBA,mBAAmB,CAAC;YAAE,GAAGrC,QAAQ;YAAEgC,UAAU,MAAMC,IAAAA,uBAAY,EAAC;QAAO,GACvEK,qBAAqB,CAAC;YAAEC,SAAS;YAAYC,MAAM;QAAQ,GAC3DF,qBAAqB,CACpB,IAAIG,MAAM,gCAAgC;YACxCC,OAAO;gBAAEF,MAAMG,MAAMC,IAAI,CAACC,gCAAkB,CAAC,CAAC,EAAE;YAAC;QACnD;QAEJlB,OAAO,MAAM7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGc,QAAQ;QACxFnB,OAAO,MAAM7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGc,QAAQ;QACxF,MAAMnB,OAAO7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGe,OAAO,CAACC,OAAO,CAAC;QAChG,MAAMrB,OAAO7B,kBAAkBoC,YAAY,CAAClC,SAASmC,KAAK,EAAEnC,SAASgC,QAAQ,GAAGe,OAAO,CAACC,OAAO,CAAC;IAClG;AACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get OAuthDesktopCallBackURI () {
|
|
13
|
+
return OAuthDesktopCallBackURI;
|
|
14
|
+
},
|
|
15
|
+
get OAuthDesktopLoopbackPorts () {
|
|
16
|
+
return OAuthDesktopLoopbackPorts;
|
|
17
|
+
},
|
|
18
|
+
get OAuthDesktopPortParam () {
|
|
19
|
+
return OAuthDesktopPortParam;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const OAuthDesktopPortParam = 'desktop_port';
|
|
23
|
+
const OAuthDesktopCallBackURI = '/oidc/callback';
|
|
24
|
+
const OAuthDesktopLoopbackPorts = new Set([
|
|
25
|
+
49152,
|
|
26
|
+
49153,
|
|
27
|
+
49154
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=auth-oidc-desktop.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc-desktop.constants.ts"],"sourcesContent":["export const OAuthDesktopPortParam = 'desktop_port' as const\nexport const OAuthDesktopCallBackURI = '/oidc/callback' as const\nexport const OAuthDesktopLoopbackPorts = new Set<number>([49152, 49153, 49154])\n"],"names":["OAuthDesktopCallBackURI","OAuthDesktopLoopbackPorts","OAuthDesktopPortParam","Set"],"mappings":";;;;;;;;;;;QACaA;eAAAA;;QACAC;eAAAA;;QAFAC;eAAAA;;;AAAN,MAAMA,wBAAwB;AAC9B,MAAMF,0BAA0B;AAChC,MAAMC,4BAA4B,IAAIE,IAAY;IAAC;IAAO;IAAO;CAAM"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get AuthProviderOIDCConfig () {
|
|
13
|
+
return AuthProviderOIDCConfig;
|
|
14
|
+
},
|
|
15
|
+
get AuthProviderOIDCOptionsConfig () {
|
|
16
|
+
return AuthProviderOIDCOptionsConfig;
|
|
17
|
+
},
|
|
18
|
+
get AuthProviderOIDCSecurityConfig () {
|
|
19
|
+
return AuthProviderOIDCSecurityConfig;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _classtransformer = require("class-transformer");
|
|
23
|
+
const _classvalidator = require("class-validator");
|
|
24
|
+
const _user = require("../../../applications/users/constants/user");
|
|
25
|
+
const _authoidcconstants = require("./auth-oidc.constants");
|
|
26
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
27
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
28
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
29
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
30
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
31
|
+
}
|
|
32
|
+
function _ts_metadata(k, v) {
|
|
33
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
34
|
+
}
|
|
35
|
+
let AuthProviderOIDCSecurityConfig = class AuthProviderOIDCSecurityConfig {
|
|
36
|
+
constructor(){
|
|
37
|
+
this.scope = 'openid email profile';
|
|
38
|
+
this.tokenEndpointAuthMethod = _authoidcconstants.OAuthTokenEndpoint.ClientSecretBasic;
|
|
39
|
+
this.tokenSigningAlg = 'RS256';
|
|
40
|
+
this.userInfoSigningAlg = undefined;
|
|
41
|
+
this.skipSubjectCheck = false;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
_ts_decorate([
|
|
45
|
+
(0, _classvalidator.IsString)(),
|
|
46
|
+
(0, _classvalidator.Matches)(/\bopenid\b/, {
|
|
47
|
+
message: 'OIDC scope must include "openid"'
|
|
48
|
+
})
|
|
49
|
+
], AuthProviderOIDCSecurityConfig.prototype, "scope", void 0);
|
|
50
|
+
_ts_decorate([
|
|
51
|
+
(0, _classtransformer.Transform)(({ value })=>value || _authoidcconstants.OAuthTokenEndpoint.ClientSecretBasic),
|
|
52
|
+
(0, _classvalidator.IsEnum)(_authoidcconstants.OAuthTokenEndpoint),
|
|
53
|
+
_ts_metadata("design:type", typeof _authoidcconstants.OAuthTokenEndpoint === "undefined" ? Object : _authoidcconstants.OAuthTokenEndpoint)
|
|
54
|
+
], AuthProviderOIDCSecurityConfig.prototype, "tokenEndpointAuthMethod", void 0);
|
|
55
|
+
_ts_decorate([
|
|
56
|
+
(0, _classvalidator.IsString)(),
|
|
57
|
+
(0, _classvalidator.IsNotEmpty)()
|
|
58
|
+
], AuthProviderOIDCSecurityConfig.prototype, "tokenSigningAlg", void 0);
|
|
59
|
+
_ts_decorate([
|
|
60
|
+
(0, _classvalidator.IsOptional)(),
|
|
61
|
+
(0, _classvalidator.IsString)()
|
|
62
|
+
], AuthProviderOIDCSecurityConfig.prototype, "userInfoSigningAlg", void 0);
|
|
63
|
+
_ts_decorate([
|
|
64
|
+
(0, _classvalidator.IsOptional)(),
|
|
65
|
+
(0, _classvalidator.IsBoolean)()
|
|
66
|
+
], AuthProviderOIDCSecurityConfig.prototype, "skipSubjectCheck", void 0);
|
|
67
|
+
let AuthProviderOIDCOptionsConfig = class AuthProviderOIDCOptionsConfig {
|
|
68
|
+
constructor(){
|
|
69
|
+
this.autoCreateUser = true;
|
|
70
|
+
this.autoCreatePermissions = [];
|
|
71
|
+
this.autoRedirect = false;
|
|
72
|
+
this.enablePasswordAuth = true;
|
|
73
|
+
this.buttonText = 'Continue with OpenID Connect';
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
_ts_decorate([
|
|
77
|
+
(0, _classvalidator.IsOptional)(),
|
|
78
|
+
(0, _classvalidator.IsBoolean)()
|
|
79
|
+
], AuthProviderOIDCOptionsConfig.prototype, "autoCreateUser", void 0);
|
|
80
|
+
_ts_decorate([
|
|
81
|
+
(0, _classvalidator.IsOptional)(),
|
|
82
|
+
(0, _classvalidator.IsArray)(),
|
|
83
|
+
(0, _classvalidator.IsEnum)(_user.USER_PERMISSION, {
|
|
84
|
+
each: true
|
|
85
|
+
}),
|
|
86
|
+
_ts_metadata("design:type", Array)
|
|
87
|
+
], AuthProviderOIDCOptionsConfig.prototype, "autoCreatePermissions", void 0);
|
|
88
|
+
_ts_decorate([
|
|
89
|
+
(0, _classvalidator.IsOptional)(),
|
|
90
|
+
(0, _classvalidator.IsBoolean)()
|
|
91
|
+
], AuthProviderOIDCOptionsConfig.prototype, "autoRedirect", void 0);
|
|
92
|
+
_ts_decorate([
|
|
93
|
+
(0, _classvalidator.IsOptional)(),
|
|
94
|
+
(0, _classvalidator.IsBoolean)()
|
|
95
|
+
], AuthProviderOIDCOptionsConfig.prototype, "enablePasswordAuth", void 0);
|
|
96
|
+
_ts_decorate([
|
|
97
|
+
(0, _classvalidator.IsOptional)(),
|
|
98
|
+
(0, _classvalidator.IsString)(),
|
|
99
|
+
_ts_metadata("design:type", String)
|
|
100
|
+
], AuthProviderOIDCOptionsConfig.prototype, "adminRoleOrGroup", void 0);
|
|
101
|
+
_ts_decorate([
|
|
102
|
+
(0, _classvalidator.IsString)(),
|
|
103
|
+
(0, _classvalidator.IsNotEmpty)(),
|
|
104
|
+
_ts_metadata("design:type", String)
|
|
105
|
+
], AuthProviderOIDCOptionsConfig.prototype, "buttonText", void 0);
|
|
106
|
+
let AuthProviderOIDCConfig = class AuthProviderOIDCConfig {
|
|
107
|
+
constructor(){
|
|
108
|
+
this.options = new AuthProviderOIDCOptionsConfig();
|
|
109
|
+
this.security = new AuthProviderOIDCSecurityConfig();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
_ts_decorate([
|
|
113
|
+
(0, _classvalidator.IsString)(),
|
|
114
|
+
(0, _classvalidator.IsNotEmpty)(),
|
|
115
|
+
_ts_metadata("design:type", String)
|
|
116
|
+
], AuthProviderOIDCConfig.prototype, "issuerUrl", void 0);
|
|
117
|
+
_ts_decorate([
|
|
118
|
+
(0, _classvalidator.IsString)(),
|
|
119
|
+
(0, _classvalidator.IsNotEmpty)(),
|
|
120
|
+
_ts_metadata("design:type", String)
|
|
121
|
+
], AuthProviderOIDCConfig.prototype, "clientId", void 0);
|
|
122
|
+
_ts_decorate([
|
|
123
|
+
(0, _classvalidator.IsString)(),
|
|
124
|
+
(0, _classvalidator.IsNotEmpty)(),
|
|
125
|
+
_ts_metadata("design:type", String)
|
|
126
|
+
], AuthProviderOIDCConfig.prototype, "clientSecret", void 0);
|
|
127
|
+
_ts_decorate([
|
|
128
|
+
(0, _classvalidator.IsString)(),
|
|
129
|
+
(0, _classvalidator.IsNotEmpty)(),
|
|
130
|
+
_ts_metadata("design:type", String)
|
|
131
|
+
], AuthProviderOIDCConfig.prototype, "redirectUri", void 0);
|
|
132
|
+
_ts_decorate([
|
|
133
|
+
(0, _classvalidator.IsDefined)(),
|
|
134
|
+
(0, _classvalidator.IsNotEmptyObject)(),
|
|
135
|
+
(0, _classvalidator.IsObject)(),
|
|
136
|
+
(0, _classvalidator.ValidateNested)(),
|
|
137
|
+
(0, _classtransformer.Type)(()=>AuthProviderOIDCOptionsConfig),
|
|
138
|
+
_ts_metadata("design:type", typeof AuthProviderOIDCOptionsConfig === "undefined" ? Object : AuthProviderOIDCOptionsConfig)
|
|
139
|
+
], AuthProviderOIDCConfig.prototype, "options", void 0);
|
|
140
|
+
_ts_decorate([
|
|
141
|
+
(0, _classvalidator.IsDefined)(),
|
|
142
|
+
(0, _classvalidator.IsNotEmptyObject)(),
|
|
143
|
+
(0, _classvalidator.IsObject)(),
|
|
144
|
+
(0, _classvalidator.ValidateNested)(),
|
|
145
|
+
(0, _classtransformer.Type)(()=>AuthProviderOIDCSecurityConfig),
|
|
146
|
+
_ts_metadata("design:type", typeof AuthProviderOIDCSecurityConfig === "undefined" ? Object : AuthProviderOIDCSecurityConfig)
|
|
147
|
+
], AuthProviderOIDCConfig.prototype, "security", void 0);
|
|
148
|
+
|
|
149
|
+
//# sourceMappingURL=auth-oidc.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.config.ts"],"sourcesContent":["import { Transform, Type } from 'class-transformer'\nimport {\n IsArray,\n IsBoolean,\n IsDefined,\n IsEnum,\n IsNotEmpty,\n IsNotEmptyObject,\n IsObject,\n IsOptional,\n IsString,\n Matches,\n ValidateNested\n} from 'class-validator'\nimport { USER_PERMISSION } from '../../../applications/users/constants/user'\nimport { OAuthTokenEndpoint } from './auth-oidc.constants'\n\nexport class AuthProviderOIDCSecurityConfig {\n @IsString()\n @Matches(/\\bopenid\\b/, { message: 'OIDC scope must include \"openid\"' })\n scope = 'openid email profile'\n\n @Transform(({ value }) => value || OAuthTokenEndpoint.ClientSecretBasic)\n @IsEnum(OAuthTokenEndpoint)\n tokenEndpointAuthMethod: OAuthTokenEndpoint = OAuthTokenEndpoint.ClientSecretBasic\n\n @IsString()\n @IsNotEmpty()\n tokenSigningAlg = 'RS256'\n\n @IsOptional()\n @IsString()\n userInfoSigningAlg? = undefined\n\n @IsOptional()\n @IsBoolean()\n skipSubjectCheck? = false\n}\n\nexport class AuthProviderOIDCOptionsConfig {\n @IsOptional()\n @IsBoolean()\n autoCreateUser? = true\n\n @IsOptional()\n @IsArray()\n @IsEnum(USER_PERMISSION, { each: true })\n autoCreatePermissions?: USER_PERMISSION[] = []\n\n @IsOptional()\n @IsBoolean()\n autoRedirect? = false\n\n @IsOptional()\n @IsBoolean()\n enablePasswordAuth? = true\n\n @IsOptional()\n @IsString()\n adminRoleOrGroup?: string\n\n @IsString()\n @IsNotEmpty()\n buttonText: string = 'Continue with OpenID Connect'\n}\n\nexport class AuthProviderOIDCConfig {\n @IsString()\n @IsNotEmpty()\n issuerUrl: string\n\n @IsString()\n @IsNotEmpty()\n clientId: string\n\n @IsString()\n @IsNotEmpty()\n clientSecret: string\n\n @IsString()\n @IsNotEmpty()\n redirectUri: string\n\n @IsDefined()\n @IsNotEmptyObject()\n @IsObject()\n @ValidateNested()\n @Type(() => AuthProviderOIDCOptionsConfig)\n options: AuthProviderOIDCOptionsConfig = new AuthProviderOIDCOptionsConfig()\n\n @IsDefined()\n @IsNotEmptyObject()\n @IsObject()\n @ValidateNested()\n @Type(() => AuthProviderOIDCSecurityConfig)\n security: AuthProviderOIDCSecurityConfig = new AuthProviderOIDCSecurityConfig()\n}\n"],"names":["AuthProviderOIDCConfig","AuthProviderOIDCOptionsConfig","AuthProviderOIDCSecurityConfig","scope","tokenEndpointAuthMethod","OAuthTokenEndpoint","ClientSecretBasic","tokenSigningAlg","userInfoSigningAlg","undefined","skipSubjectCheck","message","value","autoCreateUser","autoCreatePermissions","autoRedirect","enablePasswordAuth","buttonText","each","options","security"],"mappings":";;;;;;;;;;;QAkEaA;eAAAA;;QA3BAC;eAAAA;;QAtBAC;eAAAA;;;kCAjBmB;gCAazB;sBACyB;mCACG;;;;;;;;;;AAE5B,IAAA,AAAMA,iCAAN,MAAMA;;aAGXC,QAAQ;aAIRC,0BAA8CC,qCAAkB,CAACC,iBAAiB;aAIlFC,kBAAkB;aAIlBC,qBAAsBC;aAItBC,mBAAoB;;AACtB;;;;QAlB2BC,SAAS;;;;sCAGtB,EAAEC,KAAK,EAAE,GAAKA,SAASP,qCAAkB,CAACC,iBAAiB;;;;;;;;;;;;;;;;AAiBlE,IAAA,AAAML,gCAAN,MAAMA;;aAGXY,iBAAkB;aAKlBC,wBAA4C,EAAE;aAI9CC,eAAgB;aAIhBC,qBAAsB;aAQtBC,aAAqB;;AACvB;;;;;;;;;QAlB6BC,MAAM;;;;;;;;;;;;;;;;;;;;;;AAoB5B,IAAA,AAAMlB,yBAAN,MAAMA;;aAsBXmB,UAAyC,IAAIlB;aAO7CmB,WAA2C,IAAIlB;;AACjD;;;;;;;;;;;;;;;;;;;;;;;;;;oCATcD;;;;;;;;oCAOAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get OAuthCookie () {
|
|
13
|
+
return OAuthCookie;
|
|
14
|
+
},
|
|
15
|
+
get OAuthCookieSettings () {
|
|
16
|
+
return OAuthCookieSettings;
|
|
17
|
+
},
|
|
18
|
+
get OAuthTokenEndpoint () {
|
|
19
|
+
return OAuthTokenEndpoint;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var OAuthTokenEndpoint = /*#__PURE__*/ function(OAuthTokenEndpoint) {
|
|
23
|
+
OAuthTokenEndpoint["ClientSecretPost"] = "client_secret_post";
|
|
24
|
+
OAuthTokenEndpoint["ClientSecretBasic"] = "client_secret_basic";
|
|
25
|
+
return OAuthTokenEndpoint;
|
|
26
|
+
}({});
|
|
27
|
+
const OAuthCookie = {
|
|
28
|
+
State: 'oidc_state',
|
|
29
|
+
Nonce: 'oidc_nonce',
|
|
30
|
+
CodeVerifier: 'oidc_code_verifier'
|
|
31
|
+
};
|
|
32
|
+
const OAuthCookieSettings = {
|
|
33
|
+
httpOnly: true,
|
|
34
|
+
path: '/',
|
|
35
|
+
maxAge: 600,
|
|
36
|
+
sameSite: 'lax'
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=auth-oidc.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.constants.ts"],"sourcesContent":["export enum OAuthTokenEndpoint {\n ClientSecretPost = 'client_secret_post',\n ClientSecretBasic = 'client_secret_basic'\n}\n\nexport const OAuthCookie = {\n State: 'oidc_state',\n Nonce: 'oidc_nonce',\n CodeVerifier: 'oidc_code_verifier'\n} as const\n\nexport const OAuthCookieSettings = { httpOnly: true, path: '/', maxAge: 600, sameSite: 'lax' } as const\n"],"names":["OAuthCookie","OAuthCookieSettings","OAuthTokenEndpoint","State","Nonce","CodeVerifier","httpOnly","path","maxAge","sameSite"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QAMAC;eAAAA;;QAXDC;eAAAA;;;AAAL,IAAA,AAAKA,4CAAAA;;;WAAAA;;AAKL,MAAMF,cAAc;IACzBG,OAAO;IACPC,OAAO;IACPC,cAAc;AAChB;AAEO,MAAMJ,sBAAsB;IAAEK,UAAU;IAAMC,MAAM;IAAKC,QAAQ;IAAKC,UAAU;AAAM"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "AuthOIDCController", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return AuthOIDCController;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _common = require("@nestjs/common");
|
|
12
|
+
const _fastify = require("fastify");
|
|
13
|
+
const _authservice = require("../../auth.service");
|
|
14
|
+
const _routes = require("../../constants/routes");
|
|
15
|
+
const _authtokenskipdecorator = require("../../decorators/auth-token-skip.decorator");
|
|
16
|
+
const _authoidcdesktopconstants = require("./auth-oidc-desktop.constants");
|
|
17
|
+
const _authprovideroidcservice = require("./auth-provider-oidc.service");
|
|
18
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
}
|
|
24
|
+
function _ts_metadata(k, v) {
|
|
25
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
26
|
+
}
|
|
27
|
+
function _ts_param(paramIndex, decorator) {
|
|
28
|
+
return function(target, key) {
|
|
29
|
+
decorator(target, key, paramIndex);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
let AuthOIDCController = class AuthOIDCController {
|
|
33
|
+
async oidcLogin(desktopPort, res) {
|
|
34
|
+
const url = await this.authProviderOIDC.getAuthorizationUrl(res, desktopPort);
|
|
35
|
+
// Redirect to OIDC provider
|
|
36
|
+
return res.redirect(url, _common.HttpStatus.FOUND);
|
|
37
|
+
}
|
|
38
|
+
async oidcCallback(query, req, res) {
|
|
39
|
+
const user = await this.authProviderOIDC.handleCallback(req, res, query);
|
|
40
|
+
const r = await this.authManager.setCookies(user, res, false);
|
|
41
|
+
return res.redirect(this.authProviderOIDC.getRedirectCallbackUrl(r.token.access_expiration, r.token.refresh_expiration), _common.HttpStatus.FOUND);
|
|
42
|
+
}
|
|
43
|
+
constructor(authManager, authProviderOIDC){
|
|
44
|
+
this.authManager = authManager;
|
|
45
|
+
this.authProviderOIDC = authProviderOIDC;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
_ts_decorate([
|
|
49
|
+
(0, _common.Get)(_routes.AUTH_ROUTE.OIDC_LOGIN),
|
|
50
|
+
(0, _authtokenskipdecorator.AuthTokenSkip)(),
|
|
51
|
+
_ts_param(0, (0, _common.Query)(_authoidcdesktopconstants.OAuthDesktopPortParam)),
|
|
52
|
+
_ts_param(1, (0, _common.Res)()),
|
|
53
|
+
_ts_metadata("design:type", Function),
|
|
54
|
+
_ts_metadata("design:paramtypes", [
|
|
55
|
+
Number,
|
|
56
|
+
typeof _fastify.FastifyReply === "undefined" ? Object : _fastify.FastifyReply
|
|
57
|
+
]),
|
|
58
|
+
_ts_metadata("design:returntype", Promise)
|
|
59
|
+
], AuthOIDCController.prototype, "oidcLogin", null);
|
|
60
|
+
_ts_decorate([
|
|
61
|
+
(0, _common.Get)(_routes.AUTH_ROUTE.OIDC_CALLBACK),
|
|
62
|
+
(0, _authtokenskipdecorator.AuthTokenSkip)(),
|
|
63
|
+
_ts_param(0, (0, _common.Query)()),
|
|
64
|
+
_ts_param(1, (0, _common.Req)()),
|
|
65
|
+
_ts_param(2, (0, _common.Res)()),
|
|
66
|
+
_ts_metadata("design:type", Function),
|
|
67
|
+
_ts_metadata("design:paramtypes", [
|
|
68
|
+
typeof Record === "undefined" ? Object : Record,
|
|
69
|
+
typeof _fastify.FastifyRequest === "undefined" ? Object : _fastify.FastifyRequest,
|
|
70
|
+
typeof _fastify.FastifyReply === "undefined" ? Object : _fastify.FastifyReply
|
|
71
|
+
]),
|
|
72
|
+
_ts_metadata("design:returntype", Promise)
|
|
73
|
+
], AuthOIDCController.prototype, "oidcCallback", null);
|
|
74
|
+
AuthOIDCController = _ts_decorate([
|
|
75
|
+
(0, _common.Controller)(_routes.AUTH_ROUTE.BASE),
|
|
76
|
+
_ts_metadata("design:type", Function),
|
|
77
|
+
_ts_metadata("design:paramtypes", [
|
|
78
|
+
typeof _authservice.AuthManager === "undefined" ? Object : _authservice.AuthManager,
|
|
79
|
+
typeof _authprovideroidcservice.AuthProviderOIDC === "undefined" ? Object : _authprovideroidcservice.AuthProviderOIDC
|
|
80
|
+
])
|
|
81
|
+
], AuthOIDCController);
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=auth-oidc.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.controller.ts"],"sourcesContent":["import { Controller, Get, HttpStatus, Query, Req, Res } from '@nestjs/common'\nimport { FastifyReply, FastifyRequest } from 'fastify'\nimport type { UserModel } from '../../../applications/users/models/user.model'\nimport { AuthManager } from '../../auth.service'\nimport { AUTH_ROUTE } from '../../constants/routes'\nimport { AuthTokenSkip } from '../../decorators/auth-token-skip.decorator'\nimport type { LoginResponseDto } from '../../dto/login-response.dto'\nimport { OAuthDesktopPortParam } from './auth-oidc-desktop.constants'\nimport { AuthProviderOIDC } from './auth-provider-oidc.service'\n\n@Controller(AUTH_ROUTE.BASE)\nexport class AuthOIDCController {\n constructor(\n private readonly authManager: AuthManager,\n private readonly authProviderOIDC: AuthProviderOIDC\n ) {}\n\n @Get(AUTH_ROUTE.OIDC_LOGIN)\n @AuthTokenSkip()\n async oidcLogin(@Query(OAuthDesktopPortParam) desktopPort: number, @Res() res: FastifyReply): Promise<void> {\n const url = await this.authProviderOIDC.getAuthorizationUrl(res, desktopPort)\n // Redirect to OIDC provider\n return res.redirect(url, HttpStatus.FOUND)\n }\n\n @Get(AUTH_ROUTE.OIDC_CALLBACK)\n @AuthTokenSkip()\n async oidcCallback(@Query() query: Record<string, string>, @Req() req: FastifyRequest, @Res() res: FastifyReply): Promise<void> {\n const user: UserModel = await this.authProviderOIDC.handleCallback(req, res, query)\n const r: LoginResponseDto = await this.authManager.setCookies(user, res, false)\n return res.redirect(this.authProviderOIDC.getRedirectCallbackUrl(r.token.access_expiration, r.token.refresh_expiration), HttpStatus.FOUND)\n }\n}\n"],"names":["AuthOIDCController","oidcLogin","desktopPort","res","url","authProviderOIDC","getAuthorizationUrl","redirect","HttpStatus","FOUND","oidcCallback","query","req","user","handleCallback","r","authManager","setCookies","getRedirectCallbackUrl","token","access_expiration","refresh_expiration","OIDC_LOGIN","OIDC_CALLBACK","BASE"],"mappings":";;;;+BAWaA;;;eAAAA;;;wBAXgD;yBAChB;6BAEjB;wBACD;wCACG;0CAEQ;yCACL;;;;;;;;;;;;;;;AAG1B,IAAA,AAAMA,qBAAN,MAAMA;IAMX,MAEMC,UAAU,AAA8BC,WAAmB,EAAE,AAAOC,GAAiB,EAAiB;QAC1G,MAAMC,MAAM,MAAM,IAAI,CAACC,gBAAgB,CAACC,mBAAmB,CAACH,KAAKD;QACjE,4BAA4B;QAC5B,OAAOC,IAAII,QAAQ,CAACH,KAAKI,kBAAU,CAACC,KAAK;IAC3C;IAEA,MAEMC,aAAa,AAASC,KAA6B,EAAE,AAAOC,GAAmB,EAAE,AAAOT,GAAiB,EAAiB;QAC9H,MAAMU,OAAkB,MAAM,IAAI,CAACR,gBAAgB,CAACS,cAAc,CAACF,KAAKT,KAAKQ;QAC7E,MAAMI,IAAsB,MAAM,IAAI,CAACC,WAAW,CAACC,UAAU,CAACJ,MAAMV,KAAK;QACzE,OAAOA,IAAII,QAAQ,CAAC,IAAI,CAACF,gBAAgB,CAACa,sBAAsB,CAACH,EAAEI,KAAK,CAACC,iBAAiB,EAAEL,EAAEI,KAAK,CAACE,kBAAkB,GAAGb,kBAAU,CAACC,KAAK;IAC3I;IAnBA,YACE,AAAiBO,WAAwB,EACzC,AAAiBX,gBAAkC,CACnD;aAFiBW,cAAAA;aACAX,mBAAAA;IAChB;AAiBL;;wCAfkBiB;;;;;;;;;;;;wCAQAC;;;;;;;;;;;;;;+CAfKC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../backend/src/authentication/providers/oidc/auth-oidc.interfaces.ts"],"names":[],"mappings":""}
|