@researchdatabox/redbox-core 5.1.0-beta.12573 → 5.1.0-beta.13939
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/browser/redoc-library-loader.cjs +20 -0
- package/browser/redoc-standalone.js +143 -0
- package/dist/CoreBase.d.ts +43 -0
- package/dist/CoreBase.d.ts.map +1 -0
- package/dist/CoreBase.js +101 -0
- package/dist/CoreController.d.ts +23 -31
- package/dist/CoreController.d.ts.map +1 -1
- package/dist/CoreController.js +142 -131
- package/dist/CoreService.d.ts +13 -33
- package/dist/CoreService.d.ts.map +1 -1
- package/dist/CoreService.js +69 -95
- package/dist/HarvestRunService.d.ts +9 -1
- package/dist/HarvestRunService.d.ts.map +1 -1
- package/dist/HarvestRunService.js +1 -1
- package/dist/RecordRouteForm.d.ts +49 -0
- package/dist/RecordRouteForm.d.ts.map +1 -0
- package/dist/RecordRouteForm.js +188 -0
- package/dist/RecordSaveResponse.d.ts +4 -0
- package/dist/RecordSaveResponse.d.ts.map +1 -1
- package/dist/RecordSaveResponse.js +3 -2
- package/dist/action-execution/executor.d.ts +1 -1
- package/dist/action-execution/executor.d.ts.map +1 -1
- package/dist/action-execution/executor.js +19 -20
- package/dist/action-execution/legacy-result.d.ts +1 -1
- package/dist/action-execution/legacy-result.d.ts.map +1 -1
- package/dist/action-execution/legacy-result.js +43 -10
- package/dist/action-execution/types.d.ts +3 -3
- package/dist/action-execution/types.d.ts.map +1 -1
- package/dist/api-routes/groups/harvest-runs.d.ts +1 -0
- package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -1
- package/dist/api-routes/groups/harvest-runs.js +24 -3
- package/dist/api-routes/groups/records.d.ts.map +1 -1
- package/dist/api-routes/groups/records.js +30 -21
- package/dist/api-routes/groups/reports.d.ts.map +1 -1
- package/dist/api-routes/groups/reports.js +3 -2
- package/dist/api-routes/helpers.d.ts +1 -1
- package/dist/api-routes/helpers.d.ts.map +1 -1
- package/dist/api-routes/helpers.js +10 -6
- package/dist/api-routes/openapi.d.ts.map +1 -1
- package/dist/api-routes/openapi.js +15 -1
- package/dist/api-routes/request-extraction.js +2 -2
- package/dist/api-routes/schemas/common.d.ts.map +1 -1
- package/dist/api-routes/schemas/common.js +7 -2
- package/dist/api-routes/schemas/responses.d.ts +38 -12
- package/dist/api-routes/schemas/responses.d.ts.map +1 -1
- package/dist/api-routes/schemas/responses.js +11 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +13 -3
- package/dist/config/agendaQueue.config.d.ts +5 -0
- package/dist/config/agendaQueue.config.d.ts.map +1 -1
- package/dist/config/agendaQueue.config.js +29 -2
- package/dist/config/appConfigSecrets.config.d.ts +14 -0
- package/dist/config/appConfigSecrets.config.d.ts.map +1 -0
- package/dist/config/appConfigSecrets.config.js +8 -0
- package/dist/config/brandingConfigurationDefaults.config.d.ts +16 -3
- package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
- package/dist/config/brandingConfigurationDefaults.config.js +1 -1
- package/dist/config/dompurify.config.d.ts.map +1 -1
- package/dist/config/dompurify.config.js +3 -2
- package/dist/config/harvestRuns.config.d.ts +7 -0
- package/dist/config/harvestRuns.config.d.ts.map +1 -1
- package/dist/config/harvestRuns.config.js +2 -1
- package/dist/config/http.config.d.ts +3 -2
- package/dist/config/http.config.d.ts.map +1 -1
- package/dist/config/http.config.js +108 -12
- package/dist/config/i18n.config.d.ts +3 -0
- package/dist/config/i18n.config.d.ts.map +1 -1
- package/dist/config/i18n.config.js +1 -1
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -1
- package/dist/config/log.config.d.ts +33 -5
- package/dist/config/log.config.d.ts.map +1 -1
- package/dist/config/log.config.js +58 -54
- package/dist/config/record.config.d.ts +17 -0
- package/dist/config/record.config.d.ts.map +1 -1
- package/dist/config/record.config.js +7 -1
- package/dist/config/routes.config.d.ts.map +1 -1
- package/dist/config/routes.config.js +11 -2
- package/dist/config/session.config.d.ts +2 -2
- package/dist/config/session.config.d.ts.map +1 -1
- package/dist/config/solr.config.d.ts +8 -0
- package/dist/config/solr.config.d.ts.map +1 -1
- package/dist/config/solr.config.js +15 -2
- package/dist/config/storage.config.d.ts.map +1 -1
- package/dist/config/storage.config.js +9 -1
- package/dist/config/vocab.config.d.ts +1 -0
- package/dist/config/vocab.config.d.ts.map +1 -1
- package/dist/config/vocab.config.js +3 -3
- package/dist/config/webpack.config.d.ts.map +1 -1
- package/dist/config/webpack.config.js +23 -5
- package/dist/configmodels/ConfigModels.d.ts.map +1 -1
- package/dist/configmodels/ConfigModels.js +3 -2
- package/dist/configmodels/FigsharePublishing.d.ts +1 -1
- package/dist/controllers/ActionController.d.ts.map +1 -1
- package/dist/controllers/ActionController.js +8 -2
- package/dist/controllers/BrandingAppController.d.ts.map +1 -1
- package/dist/controllers/BrandingAppController.js +21 -2
- package/dist/controllers/DynamicAssetController.d.ts +9 -10
- package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
- package/dist/controllers/DynamicAssetController.js +67 -53
- package/dist/controllers/EmailController.d.ts.map +1 -1
- package/dist/controllers/EmailController.js +32 -14
- package/dist/controllers/ExportController.d.ts +9 -0
- package/dist/controllers/ExportController.d.ts.map +1 -1
- package/dist/controllers/ExportController.js +154 -3
- package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
- package/dist/controllers/FormVocabularyController.js +62 -33
- package/dist/controllers/RecordAuditController.d.ts.map +1 -1
- package/dist/controllers/RecordAuditController.js +4 -2
- package/dist/controllers/RecordController.d.ts +4 -1
- package/dist/controllers/RecordController.d.ts.map +1 -1
- package/dist/controllers/RecordController.js +248 -114
- package/dist/controllers/ReportController.d.ts +1 -0
- package/dist/controllers/ReportController.d.ts.map +1 -1
- package/dist/controllers/ReportController.js +40 -12
- package/dist/controllers/TranslationController.d.ts.map +1 -1
- package/dist/controllers/TranslationController.js +56 -16
- package/dist/controllers/UserController.d.ts +3 -1
- package/dist/controllers/UserController.d.ts.map +1 -1
- package/dist/controllers/UserController.js +178 -76
- package/dist/controllers/VocabularyController.d.ts +0 -1
- package/dist/controllers/VocabularyController.d.ts.map +1 -1
- package/dist/controllers/VocabularyController.js +18 -16
- package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
- package/dist/controllers/webservice/AdminController.js +2 -5
- package/dist/controllers/webservice/HarvestRunController.d.ts +1 -0
- package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -1
- package/dist/controllers/webservice/HarvestRunController.js +46 -2
- package/dist/controllers/webservice/IntegrationAuditController.d.ts +0 -1
- package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
- package/dist/controllers/webservice/IntegrationAuditController.js +13 -6
- package/dist/controllers/webservice/RecordController.d.ts +1 -1
- package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
- package/dist/controllers/webservice/RecordController.js +13 -4
- package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
- package/dist/controllers/webservice/ReportController.js +15 -10
- package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
- package/dist/controllers/webservice/UserManagementController.js +17 -8
- package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
- package/dist/controllers/webservice/VocabularyController.js +19 -13
- package/dist/form-config/generated-view-only.d.ts.map +1 -1
- package/dist/form-config/generated-view-only.js +12 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/loader/index.d.ts +1 -0
- package/dist/loader/index.d.ts.map +1 -1
- package/dist/loader/index.js +56 -11
- package/dist/middleware/redboxSession.d.ts.map +1 -1
- package/dist/middleware/redboxSession.js +15 -3
- package/dist/middleware/requestChronicle.d.ts +14 -0
- package/dist/middleware/requestChronicle.d.ts.map +1 -0
- package/dist/middleware/requestChronicle.js +73 -0
- package/dist/model/BuildResponse.d.ts +7 -5
- package/dist/model/BuildResponse.d.ts.map +1 -1
- package/dist/model/RBValidationError.d.ts +18 -5
- package/dist/model/RBValidationError.d.ts.map +1 -1
- package/dist/model/RBValidationError.js +56 -17
- package/dist/model/storage/ExportJobModel.d.ts +33 -0
- package/dist/model/storage/ExportJobModel.d.ts.map +1 -0
- package/dist/model/storage/ExportJobModel.js +3 -0
- package/dist/model/storage/HarvestRunModel.d.ts +20 -0
- package/dist/model/storage/HarvestRunModel.d.ts.map +1 -1
- package/dist/model/storage/HarvestRunModel.js +2 -1
- package/dist/model/storage/index.d.ts +2 -1
- package/dist/model/storage/index.d.ts.map +1 -1
- package/dist/model/storage/index.js +1 -1
- package/dist/policies/checkAuth.d.ts.map +1 -1
- package/dist/policies/checkAuth.js +3 -2
- package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
- package/dist/policies/contentSecurityPolicy.js +7 -2
- package/dist/policies/noCache.d.ts.map +1 -1
- package/dist/policies/noCache.js +4 -3
- package/dist/record-contract/record-contract-compiler.d.ts.map +1 -1
- package/dist/record-contract/record-contract-compiler.js +3 -19
- package/dist/record-contract/record-contract-context.d.ts +2 -0
- package/dist/record-contract/record-contract-context.d.ts.map +1 -1
- package/dist/record-contract/record-contract-context.js +1 -1
- package/dist/responses/notFound.d.ts.map +1 -1
- package/dist/responses/notFound.js +6 -1
- package/dist/responses/serverError.d.ts.map +1 -1
- package/dist/responses/serverError.js +13 -3
- package/dist/sails.d.ts +27 -17
- package/dist/sails.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.d.ts +11 -2
- package/dist/services/AgendaQueueService.d.ts.map +1 -1
- package/dist/services/AgendaQueueService.js +163 -51
- package/dist/services/AppConfigSecrets.d.ts +66 -0
- package/dist/services/AppConfigSecrets.d.ts.map +1 -0
- package/dist/services/AppConfigSecrets.js +396 -0
- package/dist/services/AppConfigService.d.ts +16 -1
- package/dist/services/AppConfigService.d.ts.map +1 -1
- package/dist/services/AppConfigService.js +283 -33
- package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
- package/dist/services/BrandingThemeCssService.js +32 -3
- package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
- package/dist/services/BrandingThemeTokens.js +10 -1
- package/dist/services/ConfigService.d.ts +1 -0
- package/dist/services/ConfigService.d.ts.map +1 -1
- package/dist/services/ConfigService.js +24 -9
- package/dist/services/DomSanitizerService.d.ts.map +1 -1
- package/dist/services/DomSanitizerService.js +19 -6
- package/dist/services/EmailService.d.ts +10 -2
- package/dist/services/EmailService.d.ts.map +1 -1
- package/dist/services/EmailService.js +53 -53
- package/dist/services/ExportService.d.ts +62 -0
- package/dist/services/ExportService.d.ts.map +1 -0
- package/dist/services/ExportService.js +609 -0
- package/dist/services/FormVocabularyService.d.ts.map +1 -1
- package/dist/services/FormVocabularyService.js +14 -4
- package/dist/services/FormsService.d.ts +3 -0
- package/dist/services/FormsService.d.ts.map +1 -1
- package/dist/services/FormsService.js +10 -3
- package/dist/services/HarvestRunService.d.ts +23 -1
- package/dist/services/HarvestRunService.d.ts.map +1 -1
- package/dist/services/HarvestRunService.js +155 -22
- package/dist/services/I18nEntriesService.d.ts +5 -0
- package/dist/services/I18nEntriesService.d.ts.map +1 -1
- package/dist/services/I18nEntriesService.js +55 -3
- package/dist/services/NamedQueryService.d.ts +1 -0
- package/dist/services/NamedQueryService.d.ts.map +1 -1
- package/dist/services/NamedQueryService.js +67 -31
- package/dist/services/RDMPService.d.ts.map +1 -1
- package/dist/services/RDMPService.js +69 -83
- package/dist/services/RaidService.d.ts.map +1 -1
- package/dist/services/RaidService.js +45 -11
- package/dist/services/RecordSchemaService.d.ts +3 -1
- package/dist/services/RecordSchemaService.d.ts.map +1 -1
- package/dist/services/RecordSchemaService.js +2 -1
- package/dist/services/RecordValidationService.d.ts +3 -0
- package/dist/services/RecordValidationService.d.ts.map +1 -1
- package/dist/services/RecordValidationService.js +25 -5
- package/dist/services/RecordsService.d.ts +10 -1
- package/dist/services/RecordsService.d.ts.map +1 -1
- package/dist/services/RecordsService.js +194 -93
- package/dist/services/ReportsService.d.ts +1 -0
- package/dist/services/ReportsService.d.ts.map +1 -1
- package/dist/services/ReportsService.js +10 -9
- package/dist/services/RvaImportService.d.ts.map +1 -1
- package/dist/services/RvaImportService.js +6 -5
- package/dist/services/SolrSearchService.d.ts +7 -2
- package/dist/services/SolrSearchService.d.ts.map +1 -1
- package/dist/services/SolrSearchService.js +205 -81
- package/dist/services/StorageManagerService.d.ts +5 -0
- package/dist/services/StorageManagerService.d.ts.map +1 -1
- package/dist/services/StorageManagerService.js +4 -1
- package/dist/services/TriggerService.d.ts.map +1 -1
- package/dist/services/TriggerService.js +64 -56
- package/dist/services/UsersService.d.ts +13 -1
- package/dist/services/UsersService.d.ts.map +1 -1
- package/dist/services/UsersService.js +191 -257
- package/dist/services/VocabularyService.d.ts +11 -1
- package/dist/services/VocabularyService.d.ts.map +1 -1
- package/dist/services/VocabularyService.js +120 -24
- package/dist/services/doi-v2/http.d.ts +3 -2
- package/dist/services/doi-v2/http.d.ts.map +1 -1
- package/dist/services/doi-v2/http.js +38 -4
- package/dist/services/doi-v2/runtime.d.ts +4 -3
- package/dist/services/doi-v2/runtime.d.ts.map +1 -1
- package/dist/services/doi-v2/runtime.js +52 -17
- package/dist/services/figshare-v2/assets.d.ts +1 -1
- package/dist/services/figshare-v2/assets.d.ts.map +1 -1
- package/dist/services/figshare-v2/assets.js +1 -1
- package/dist/services/figshare-v2/http.d.ts +3 -2
- package/dist/services/figshare-v2/http.d.ts.map +1 -1
- package/dist/services/figshare-v2/http.js +38 -4
- package/dist/services/figshare-v2/observability.d.ts.map +1 -1
- package/dist/services/figshare-v2/observability.js +3 -3
- package/dist/services/figshare-v2/runtime.d.ts +4 -3
- package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
- package/dist/services/figshare-v2/runtime.js +48 -13
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +8 -3
- package/dist/services/integration-v2/runtime.d.ts +1 -1
- package/dist/services/integration-v2/runtime.d.ts.map +1 -1
- package/dist/services/integration-v2/runtime.js +7 -7
- package/dist/services/oni-v2/audit.d.ts +3 -2
- package/dist/services/oni-v2/audit.d.ts.map +1 -1
- package/dist/services/oni-v2/audit.js +38 -4
- package/dist/services/oni-v2/bindings.d.ts +1 -1
- package/dist/services/oni-v2/bindings.d.ts.map +1 -1
- package/dist/services/oni-v2/bindings.js +37 -4
- package/dist/services/oni-v2/repository.d.ts +3 -2
- package/dist/services/oni-v2/repository.d.ts.map +1 -1
- package/dist/services/oni-v2/repository.js +42 -7
- package/dist/services/oni-v2/runtime.d.ts +5 -4
- package/dist/services/oni-v2/runtime.d.ts.map +1 -1
- package/dist/services/oni-v2/runtime.js +57 -19
- package/dist/services/oni-v2/templating.d.ts +4 -2
- package/dist/services/oni-v2/templating.d.ts.map +1 -1
- package/dist/services/oni-v2/templating.js +42 -7
- package/dist/services/raid-v2/audit.d.ts +1 -1
- package/dist/services/raid-v2/audit.d.ts.map +1 -1
- package/dist/services/raid-v2/audit.js +39 -5
- package/dist/services/raid-v2/errors.d.ts +9 -9
- package/dist/services/raid-v2/errors.js +44 -11
- package/dist/services/raid-v2/http.d.ts +1 -1
- package/dist/services/raid-v2/http.d.ts.map +1 -1
- package/dist/services/raid-v2/http.js +42 -8
- package/dist/services/raid-v2/logger.d.ts +1 -1
- package/dist/services/raid-v2/logger.d.ts.map +1 -1
- package/dist/services/raid-v2/logger.js +42 -8
- package/dist/services/raid-v2/mapping.d.ts +1 -1
- package/dist/services/raid-v2/mapping.d.ts.map +1 -1
- package/dist/services/raid-v2/mapping.js +41 -7
- package/dist/services/raid-v2/runtime.d.ts +1 -1
- package/dist/services/raid-v2/runtime.d.ts.map +1 -1
- package/dist/services/raid-v2/runtime.js +76 -34
- package/dist/services/raid-v2/tags.d.ts +8 -8
- package/dist/services/raid-v2/tags.d.ts.map +1 -1
- package/dist/services/raid-v2/tags.js +42 -9
- package/dist/services/record-hooks/coordinator.d.ts +11 -0
- package/dist/services/record-hooks/coordinator.d.ts.map +1 -1
- package/dist/services/record-hooks/coordinator.js +70 -6
- package/dist/storage/GridFSDriver.d.ts +16 -9
- package/dist/storage/GridFSDriver.d.ts.map +1 -1
- package/dist/storage/GridFSDriver.js +87 -33
- package/dist/storage/TusStorageManagerDataStore.d.ts +11 -1
- package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
- package/dist/storage/TusStorageManagerDataStore.js +190 -56
- package/dist/utilities/HarvestHistoryRetention.d.ts +17 -0
- package/dist/utilities/HarvestHistoryRetention.d.ts.map +1 -0
- package/dist/utilities/HarvestHistoryRetention.js +141 -0
- package/dist/utilities/HarvestRunIndexes.d.ts +12 -0
- package/dist/utilities/HarvestRunIndexes.d.ts.map +1 -0
- package/dist/utilities/HarvestRunIndexes.js +84 -0
- package/dist/utilities/PinoLoggerUtils.d.ts +9 -0
- package/dist/utilities/PinoLoggerUtils.d.ts.map +1 -0
- package/dist/utilities/PinoLoggerUtils.js +17 -0
- package/dist/utilities/RequestChronicle.d.ts +221 -0
- package/dist/utilities/RequestChronicle.d.ts.map +1 -0
- package/dist/utilities/RequestChronicle.js +770 -0
- package/dist/utilities/RequestChronicleContext.d.ts +6 -0
- package/dist/utilities/RequestChronicleContext.d.ts.map +1 -0
- package/dist/utilities/RequestChronicleContext.js +19 -0
- package/dist/utilities/RequestChronicleSettings.d.ts +29 -0
- package/dist/utilities/RequestChronicleSettings.d.ts.map +1 -0
- package/dist/utilities/RequestChronicleSettings.js +31 -0
- package/dist/utilities/TransactionUtils.d.ts +2 -1
- package/dist/utilities/TransactionUtils.d.ts.map +1 -1
- package/dist/utilities/TransactionUtils.js +1 -1
- package/dist/utilities/TranslationHtml.d.ts.map +1 -1
- package/dist/utilities/TranslationHtml.js +13 -5
- package/dist/utilities/VocabularyAdminAccess.d.ts +10 -0
- package/dist/utilities/VocabularyAdminAccess.d.ts.map +1 -0
- package/dist/utilities/VocabularyAdminAccess.js +42 -0
- package/dist/visitor/construct.visitor.d.ts.map +1 -1
- package/dist/visitor/construct.visitor.js +7 -2
- package/dist/visitor/context-variables.visitor.d.ts +1 -2
- package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
- package/dist/visitor/context-variables.visitor.js +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
- package/dist/visitor/migrate-config-v4-v5.visitor.js +5 -1
- package/dist/visitor/related-object-data-inline.visitor.d.ts +1 -1
- package/dist/visitor/related-object-data-inline.visitor.d.ts.map +1 -1
- package/dist/visitor/related-object-data-inline.visitor.js +57 -23
- package/dist/visitor/validator.visitor.d.ts.map +1 -1
- package/dist/visitor/validator.visitor.js +4 -2
- package/dist/visitor/visitor-helpers.js +3 -3
- package/dist/visitor/vocab-inline.visitor.d.ts +1 -2
- package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
- package/dist/visitor/vocab-inline.visitor.js +1 -1
- package/dist/waterline-models/ExportJob.d.ts +38 -0
- package/dist/waterline-models/ExportJob.d.ts.map +1 -0
- package/dist/waterline-models/ExportJob.js +148 -0
- package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -1
- package/dist/waterline-models/HarvestRecordEvent.js +3 -9
- package/dist/waterline-models/HarvestRun.d.ts +5 -1
- package/dist/waterline-models/HarvestRun.d.ts.map +1 -1
- package/dist/waterline-models/HarvestRun.js +13 -7
- package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -1
- package/dist/waterline-models/HarvestRunChunk.js +3 -7
- package/dist/waterline-models/User.d.ts +2 -2
- package/dist/waterline-models/User.d.ts.map +1 -1
- package/dist/waterline-models/User.js +3 -3
- package/dist/waterline-models/index.d.ts +2 -0
- package/dist/waterline-models/index.d.ts.map +1 -1
- package/dist/waterline-models/index.js +4 -1
- package/logfmt-transport.cjs +59 -0
- package/package.json +76 -45
- package/dist/Logger.d.ts +0 -16
- package/dist/Logger.d.ts.map +0 -1
- package/dist/Logger.js +0 -3
|
@@ -56,7 +56,6 @@ const rxjs_1 = require("rxjs");
|
|
|
56
56
|
const operators_1 = require("rxjs/operators");
|
|
57
57
|
const rxjs_2 = require("rxjs");
|
|
58
58
|
const CoreService_1 = require("../CoreService");
|
|
59
|
-
const RedactionUtils_1 = require("../utilities/RedactionUtils");
|
|
60
59
|
const crypto = __importStar(require("crypto"));
|
|
61
60
|
var Services;
|
|
62
61
|
(function (Services) {
|
|
@@ -475,8 +474,7 @@ var Services;
|
|
|
475
474
|
return rows;
|
|
476
475
|
}
|
|
477
476
|
catch (error) {
|
|
478
|
-
|
|
479
|
-
sails.log.error(error);
|
|
477
|
+
this.updateChronicle({ usersOperation: 'fetchDirectUserAuditRows', usersOutcome: 'failed' }, [error]);
|
|
480
478
|
throw new Error(`Unable to fetch direct audit records for user ${String(selectedUser.id ?? '')} without an unbounded fallback query.`);
|
|
481
479
|
}
|
|
482
480
|
}
|
|
@@ -553,7 +551,7 @@ var Services;
|
|
|
553
551
|
id: id,
|
|
554
552
|
})
|
|
555
553
|
.populate('roles')
|
|
556
|
-
.exec(function (err, user) {
|
|
554
|
+
.exec(async function (err, user) {
|
|
557
555
|
if (err != null || _.isEmpty(user)) {
|
|
558
556
|
done(err, user);
|
|
559
557
|
return;
|
|
@@ -595,11 +593,13 @@ var Services;
|
|
|
595
593
|
// Gate disabled users
|
|
596
594
|
that
|
|
597
595
|
.assertAuthenticationAllowed(foundUserObj)
|
|
598
|
-
.then(() => {
|
|
596
|
+
.then(async () => {
|
|
599
597
|
// foundUser.lastLogin = new Date();
|
|
600
598
|
const configLocal = _.get(defAuthConfig, 'local', {});
|
|
601
599
|
if (that.hasPreSaveTriggerConfigured(configLocal, 'onUpdate')) {
|
|
602
|
-
that
|
|
600
|
+
that
|
|
601
|
+
.triggerPreSaveTriggers(foundUserObj, configLocal)
|
|
602
|
+
.then(async (userAdditionalInfo) => {
|
|
603
603
|
const success = that.checkAllTriggersSuccessOrFailure(userAdditionalInfo);
|
|
604
604
|
if (success) {
|
|
605
605
|
User.update({
|
|
@@ -609,26 +609,22 @@ var Services;
|
|
|
609
609
|
lastLogin: new Date(),
|
|
610
610
|
additionalAttributes: _.get(userAdditionalInfo, 'additionalAttributes'),
|
|
611
611
|
})
|
|
612
|
-
.exec(function (err, user) {
|
|
612
|
+
.exec(async function (err, user) {
|
|
613
613
|
if (err) {
|
|
614
|
-
|
|
615
|
-
|
|
614
|
+
that.updateChronicle({ usersOperation: 'localAuthInit', usersOutcome: 'failed' }, [
|
|
615
|
+
err,
|
|
616
|
+
]);
|
|
616
617
|
return;
|
|
617
618
|
}
|
|
618
619
|
if (_.isEmpty(user)) {
|
|
619
|
-
|
|
620
|
+
that.updateChronicle({ usersOperation: 'localAuthInit', usersOutcome: 'failed' }, [
|
|
621
|
+
'No user found',
|
|
622
|
+
]);
|
|
620
623
|
return;
|
|
621
624
|
}
|
|
622
|
-
sails.log.verbose('Done, returning updated user:');
|
|
623
|
-
sails.log.verbose(user);
|
|
624
625
|
return;
|
|
625
626
|
});
|
|
626
|
-
|
|
627
|
-
that.triggerPostSaveTriggers(foundUserObj, configLocal);
|
|
628
|
-
}
|
|
629
|
-
if (that.hasPostSaveSyncTriggerConfigured(configLocal, 'onUpdate')) {
|
|
630
|
-
that.triggerPostSaveSyncTriggers(foundUserObj, configLocal);
|
|
631
|
-
}
|
|
627
|
+
await that.runLoginPostSaveTriggers(foundUserObj, configLocal, 'onUpdate');
|
|
632
628
|
return done(null, userAdditionalInfo, {
|
|
633
629
|
message: 'Logged In Successfully',
|
|
634
630
|
});
|
|
@@ -645,26 +641,20 @@ var Services;
|
|
|
645
641
|
username: username,
|
|
646
642
|
})
|
|
647
643
|
.set({ lastLogin: new Date() })
|
|
648
|
-
.exec(function (err, user) {
|
|
644
|
+
.exec(async function (err, user) {
|
|
649
645
|
if (err) {
|
|
650
|
-
|
|
651
|
-
sails.log.error(err);
|
|
646
|
+
that.updateChronicle({ usersOperation: 'localAuthInit', usersOutcome: 'failed' }, [err]);
|
|
652
647
|
return;
|
|
653
648
|
}
|
|
654
649
|
if (_.isEmpty(user)) {
|
|
655
|
-
|
|
650
|
+
that.updateChronicle({ usersOperation: 'localAuthInit', usersOutcome: 'failed' }, [
|
|
651
|
+
'No user found',
|
|
652
|
+
]);
|
|
656
653
|
return;
|
|
657
654
|
}
|
|
658
|
-
sails.log.verbose('Done, returning updated user:');
|
|
659
|
-
sails.log.verbose(user);
|
|
660
655
|
return;
|
|
661
656
|
});
|
|
662
|
-
|
|
663
|
-
that.triggerPostSaveTriggers(foundUserObj, configLocal);
|
|
664
|
-
}
|
|
665
|
-
if (that.hasPostSaveSyncTriggerConfigured(configLocal, 'onUpdate')) {
|
|
666
|
-
that.triggerPostSaveSyncTriggers(foundUserObj, configLocal);
|
|
667
|
-
}
|
|
657
|
+
await that.runLoginPostSaveTriggers(foundUserObj, configLocal, 'onUpdate');
|
|
668
658
|
return done(null, foundUserObj, {
|
|
669
659
|
message: 'Logged In Successfully',
|
|
670
660
|
});
|
|
@@ -731,11 +721,8 @@ var Services;
|
|
|
731
721
|
}
|
|
732
722
|
//Post login and pre update/create user
|
|
733
723
|
async triggerPreSaveTriggers(user, config, mode = 'onUpdate') {
|
|
734
|
-
sails.log.verbose('Triggering pre save triggers for user login: ');
|
|
735
|
-
sails.log.verbose(`hooks.${mode}.pre`);
|
|
736
|
-
sails.log.verbose(JSON.stringify(config));
|
|
737
724
|
const preSaveUpdateHooks = _.get(config, `hooks.${mode}.pre`, null);
|
|
738
|
-
|
|
725
|
+
this.updateChronicle({ usersPreSaveMode: mode, usersPreSaveHookCount: preSaveUpdateHooks?.length ?? 0 });
|
|
739
726
|
if (_.isArray(preSaveUpdateHooks)) {
|
|
740
727
|
for (let i = 0; i < preSaveUpdateHooks.length; i++) {
|
|
741
728
|
const preSaveUpdateHook = preSaveUpdateHooks[i];
|
|
@@ -748,21 +735,12 @@ var Services;
|
|
|
748
735
|
if (_.isUndefined(failureMode) || (failureMode != 'continue' && failureMode != 'stop')) {
|
|
749
736
|
failureMode = 'continue';
|
|
750
737
|
}
|
|
751
|
-
sails.log.verbose(`Triggering pre save triggers: ${preSaveUpdateHookFunctionString} failureMode ${failureMode}`);
|
|
752
738
|
const hookResponse = preSaveUpdateHookFunction(user, options, failureMode);
|
|
753
739
|
user = (await this.resolveHookResponse(hookResponse));
|
|
754
|
-
|
|
755
|
-
try {
|
|
756
|
-
sails.log.verbose(JSON.stringify(user));
|
|
757
|
-
}
|
|
758
|
-
catch (_error) {
|
|
759
|
-
sails.log.verbose(user);
|
|
760
|
-
}
|
|
761
|
-
sails.log.debug(`pre-save sync trigger ${preSaveUpdateHookFunctionString} completed for user: ${_.get(user, 'username')}`);
|
|
740
|
+
this.updateChronicle({ usersPreSaveHookIndex: i, usersPreSaveOutcome: 'success' });
|
|
762
741
|
}
|
|
763
742
|
catch (err) {
|
|
764
|
-
|
|
765
|
-
sails.log.error(err);
|
|
743
|
+
this.updateChronicle({ usersOperation: 'triggerPreSaveTriggers', usersOutcome: 'failed' }, [err]);
|
|
766
744
|
throw err;
|
|
767
745
|
}
|
|
768
746
|
}
|
|
@@ -772,73 +750,121 @@ var Services;
|
|
|
772
750
|
}
|
|
773
751
|
//Post login and post update/create user sync
|
|
774
752
|
async triggerPostSaveSyncTriggers(user, config, mode = 'onUpdate', response = {}) {
|
|
775
|
-
sails.log.verbose('Triggering post save sync triggers ');
|
|
776
|
-
sails.log.verbose(`hooks.${mode}.postSync`);
|
|
777
|
-
sails.log.verbose(JSON.stringify(config));
|
|
778
753
|
const postSaveSyncHooks = _.get(config, `hooks.${mode}.postSync`, null);
|
|
754
|
+
this.updateChronicle({ usersPostSaveSyncMode: mode, usersPostSaveSyncHookCount: postSaveSyncHooks?.length ?? 0 });
|
|
779
755
|
if (_.isArray(postSaveSyncHooks)) {
|
|
780
756
|
for (let i = 0; i < postSaveSyncHooks.length; i++) {
|
|
781
757
|
const postSaveSyncHook = postSaveSyncHooks[i];
|
|
782
|
-
sails.log.debug(postSaveSyncHooks);
|
|
783
758
|
const postSaveSyncHooksFunctionString = _.get(postSaveSyncHook, 'function', null);
|
|
784
759
|
if (postSaveSyncHooksFunctionString != null) {
|
|
785
760
|
const postSaveSyncHookFunction = eval(postSaveSyncHooksFunctionString);
|
|
786
761
|
const options = _.get(postSaveSyncHook, 'options', {});
|
|
787
762
|
if (_.isFunction(postSaveSyncHookFunction)) {
|
|
788
763
|
try {
|
|
789
|
-
sails.log.debug(`Triggering post-save sync trigger: ${postSaveSyncHooksFunctionString}`);
|
|
790
764
|
const hookResponse = postSaveSyncHookFunction(user, options, response);
|
|
791
765
|
response = await this.resolveHookResponse(hookResponse);
|
|
792
|
-
|
|
793
|
-
sails.log.verbose(JSON.stringify(response));
|
|
794
|
-
sails.log.debug(`post-save sync trigger ${postSaveSyncHooksFunctionString} completed for user: ${_.get(user, 'username')}`);
|
|
766
|
+
this.updateChronicle({ usersPostSaveSyncHookIndex: i, usersPostSaveSyncOutcome: 'success' });
|
|
795
767
|
}
|
|
796
768
|
catch (err) {
|
|
797
|
-
|
|
798
|
-
sails.log.error(err);
|
|
769
|
+
this.updateChronicle({ usersOperation: 'triggerPostSaveSyncTriggers', usersOutcome: 'failed' }, [err]);
|
|
799
770
|
throw err;
|
|
800
771
|
}
|
|
801
772
|
}
|
|
802
773
|
else {
|
|
803
|
-
|
|
804
|
-
|
|
774
|
+
this.updateChronicle({ usersPostSaveSyncOutcome: 'invalid-hook' }, [
|
|
775
|
+
new Error('Invalid user post-save sync hook.'),
|
|
776
|
+
]);
|
|
805
777
|
}
|
|
806
778
|
}
|
|
807
779
|
}
|
|
808
780
|
}
|
|
809
781
|
return response;
|
|
810
782
|
}
|
|
811
|
-
|
|
783
|
+
/**
|
|
784
|
+
* Run configured user post-save hooks concurrently and return their outcomes in
|
|
785
|
+
* configuration order. Failures are logged and returned as rejected entries;
|
|
786
|
+
* they do not reject the aggregate promise or prevent other hooks from running.
|
|
787
|
+
* Entries without a function are skipped. Observables settle on completion,
|
|
788
|
+
* yielding their last value (undefined for an empty Observable).
|
|
789
|
+
* Each hook has an absolute deadline (postHookTimeoutMs, default 30000ms).
|
|
790
|
+
* Timeout is a rejected outcome; Observable subscriptions are disposed.
|
|
791
|
+
* Unlike postSync hooks, these hooks do not form a sequential response chain.
|
|
792
|
+
*/
|
|
812
793
|
triggerPostSaveTriggers(user, config, mode = 'onUpdate') {
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
sails.log.error(`Post save function: '${postSaveCreateHookFunctionString}' did not resolve to a valid function, what I got:`);
|
|
837
|
-
sails.log.error(postSaveCreateHookFunction);
|
|
838
|
-
}
|
|
794
|
+
const hooks = _.get(config, `hooks.${mode}.post`, null);
|
|
795
|
+
this.updateChronicle({
|
|
796
|
+
usersPostSaveMode: mode,
|
|
797
|
+
usersPostSaveHookCount: Array.isArray(hooks) ? hooks.length : 0,
|
|
798
|
+
});
|
|
799
|
+
if (!Array.isArray(hooks)) {
|
|
800
|
+
return Promise.resolve([]);
|
|
801
|
+
}
|
|
802
|
+
const configuredTimeout = config.postHookTimeoutMs;
|
|
803
|
+
const timeoutMs = typeof configuredTimeout === 'number' &&
|
|
804
|
+
Number.isInteger(configuredTimeout) &&
|
|
805
|
+
configuredTimeout > 0 &&
|
|
806
|
+
configuredTimeout <= 2147483647
|
|
807
|
+
? configuredTimeout
|
|
808
|
+
: 30000;
|
|
809
|
+
const responses = hooks
|
|
810
|
+
.filter(hook => _.get(hook, 'function', null) != null)
|
|
811
|
+
.map(async (hook) => {
|
|
812
|
+
const functionString = _.get(hook, 'function');
|
|
813
|
+
try {
|
|
814
|
+
const hookFunction = eval(functionString);
|
|
815
|
+
if (!_.isFunction(hookFunction)) {
|
|
816
|
+
throw new TypeError(`Post save function: '${functionString}' did not resolve to a valid function`);
|
|
839
817
|
}
|
|
818
|
+
const hookResponse = hookFunction(user, _.get(hook, 'options', {}));
|
|
819
|
+
const result = await this.resolvePostHookResponse(hookResponse, timeoutMs);
|
|
820
|
+
this.updateChronicle({ usersPostSaveOutcome: 'success' });
|
|
821
|
+
return result;
|
|
822
|
+
}
|
|
823
|
+
catch (error) {
|
|
824
|
+
this.updateChronicle({ usersOperation: 'triggerPostSaveTriggers', usersOutcome: 'failed' }, [error]);
|
|
825
|
+
throw error;
|
|
826
|
+
}
|
|
827
|
+
});
|
|
828
|
+
return Promise.allSettled(responses);
|
|
829
|
+
}
|
|
830
|
+
// Start both groups before awaiting regular hooks. postSync retains its
|
|
831
|
+
// sequential response chain and background login timing.
|
|
832
|
+
async runLoginPostSaveTriggers(user, config, mode) {
|
|
833
|
+
const completion = this.triggerPostSaveTriggers(user, config, mode);
|
|
834
|
+
if (this.hasPostSaveSyncTriggerConfigured(config, mode)) {
|
|
835
|
+
void this.triggerPostSaveSyncTriggers(user, config, mode).catch(error => {
|
|
836
|
+
sails.log.error('Login postSync hooks failed to complete');
|
|
837
|
+
sails.log.error(error);
|
|
840
838
|
});
|
|
841
839
|
}
|
|
840
|
+
await completion;
|
|
841
|
+
}
|
|
842
|
+
async resolvePostHookResponse(response, timeoutMs) {
|
|
843
|
+
const subscription = new rxjs_1.Subscription();
|
|
844
|
+
let timer;
|
|
845
|
+
try {
|
|
846
|
+
const deadline = new Promise((_resolve, reject) => {
|
|
847
|
+
timer = setTimeout(() => reject(new Error(`User post-save hook timed out after ${timeoutMs}ms`)), timeoutMs);
|
|
848
|
+
});
|
|
849
|
+
const completion = (0, rxjs_2.isObservable)(response)
|
|
850
|
+
? new Promise((resolve, reject) => {
|
|
851
|
+
let value;
|
|
852
|
+
subscription.add(response.subscribe({
|
|
853
|
+
next: next => {
|
|
854
|
+
value = next;
|
|
855
|
+
},
|
|
856
|
+
error: reject,
|
|
857
|
+
complete: () => resolve(value),
|
|
858
|
+
}));
|
|
859
|
+
})
|
|
860
|
+
: Promise.resolve(response);
|
|
861
|
+
// race attaches rejection handlers even when a Promise rejects after timeout.
|
|
862
|
+
return await Promise.race([completion, deadline]);
|
|
863
|
+
}
|
|
864
|
+
finally {
|
|
865
|
+
clearTimeout(timer);
|
|
866
|
+
subscription.unsubscribe();
|
|
867
|
+
}
|
|
842
868
|
}
|
|
843
869
|
resolveHookResponse(hookResponse) {
|
|
844
870
|
if ((0, rxjs_2.isObservable)(hookResponse)) {
|
|
@@ -857,7 +883,6 @@ var Services;
|
|
|
857
883
|
// JWT/AAF Strategy
|
|
858
884
|
//
|
|
859
885
|
const that = this;
|
|
860
|
-
sails.log.verbose(`AAF auth init for default brand "${defaultBrandName}" with active providers: ${JSON.stringify(defAuthConfig.active ?? [])}`);
|
|
861
886
|
if (defAuthConfig.active != undefined && defAuthConfig.active.indexOf('aaf') != -1) {
|
|
862
887
|
const JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt;
|
|
863
888
|
const configuredAafOpts = (defAuthConfig.aaf?.opts ?? {});
|
|
@@ -871,15 +896,11 @@ var Services;
|
|
|
871
896
|
};
|
|
872
897
|
aafOpts.jsonWebTokenOptions = Object.assign({}, jwtDefaults, (configuredAafOpts.jsonWebTokenOptions ?? {}));
|
|
873
898
|
aafOpts.jwtFromRequest = ExtractJwt.fromBodyField('assertion');
|
|
874
|
-
sails.log.verbose(`Registering Passport strategy "aaf-jwt" with option keys: ${JSON.stringify(Object.keys(aafOpts))}`);
|
|
875
899
|
sails.config.passport.use('aaf-jwt', new JwtStrategy(aafOpts, function (req, jwt_payload, done) {
|
|
876
900
|
const brandName = BrandingService.getBrandNameFromReq(req);
|
|
877
901
|
const brand = BrandingService.getBrand(brandName);
|
|
878
902
|
const authConfig = that.getAuthConfig(brand.name);
|
|
879
903
|
const aafAttributes = authConfig.aaf?.attributesField ?? DEFAULT_AAF_ATTRIBUTES_FIELD;
|
|
880
|
-
sails.log.verbose(`Configured roles: ${JSON.stringify(sails.config.auth.roles)}`);
|
|
881
|
-
sails.log.verbose(`AAF default roles: ${JSON.stringify(authConfig.aaf?.defaultRole)}`);
|
|
882
|
-
sails.log.verbose(`Brand roles: ${JSON.stringify(brand.roles)}`);
|
|
883
904
|
const defaultAuthRole = RolesService.getDefAuthenticatedRole(brand);
|
|
884
905
|
let aafDefRoles = [];
|
|
885
906
|
if (defaultAuthRole != undefined) {
|
|
@@ -891,10 +912,6 @@ var Services;
|
|
|
891
912
|
User.findOne({
|
|
892
913
|
username: userName,
|
|
893
914
|
}, function (err, user) {
|
|
894
|
-
sails.log.verbose(`At AAF Strategy verify for brand "${brandName}" using username "${aafUsername}"`);
|
|
895
|
-
sails.log.verbose(`AAF resolved attributes field "${aafAttributes}"`);
|
|
896
|
-
sails.log.verbose(`AAF user lookup result: ${user ? `found user id=${String(user.id ?? 'unknown')}` : 'no user found'}`);
|
|
897
|
-
sails.log.verbose(`AAF verify error: ${err == null ? 'null' : err instanceof Error ? err.message : String(err)}`);
|
|
898
915
|
if (err) {
|
|
899
916
|
return done(err, false);
|
|
900
917
|
}
|
|
@@ -903,7 +920,7 @@ var Services;
|
|
|
903
920
|
// Gate disabled users
|
|
904
921
|
that
|
|
905
922
|
.assertAuthenticationAllowed(userObj)
|
|
906
|
-
.then(() => {
|
|
923
|
+
.then(async () => {
|
|
907
924
|
const attrs = (jwt_payload[aafAttributes] ?? {});
|
|
908
925
|
userObj.lastLogin = new Date();
|
|
909
926
|
userObj.name = String(attrs.cn ?? '');
|
|
@@ -923,31 +940,27 @@ var Services;
|
|
|
923
940
|
userObj.surname = _.isNil(attrs.surname) ? undefined : String(attrs.surname);
|
|
924
941
|
const configAAF = _.get(defAuthConfig, 'aaf', {});
|
|
925
942
|
if (that.hasPreSaveTriggerConfigured(configAAF, 'onUpdate')) {
|
|
926
|
-
that
|
|
943
|
+
that
|
|
944
|
+
.triggerPreSaveTriggers(userObj, configAAF)
|
|
945
|
+
.then(async (userAdditionalInfo) => {
|
|
927
946
|
const success = that.checkAllTriggersSuccessOrFailure(userAdditionalInfo);
|
|
928
947
|
if (success) {
|
|
929
948
|
User.update({
|
|
930
949
|
username: _.get(userAdditionalInfo, 'username'),
|
|
931
950
|
})
|
|
932
951
|
.set(userAdditionalInfo)
|
|
933
|
-
.exec(function (err, user) {
|
|
952
|
+
.exec(async function (err, user) {
|
|
934
953
|
if (err) {
|
|
935
|
-
|
|
936
|
-
|
|
954
|
+
that.updateChronicle({ usersOperation: 'aafAuthInit', usersOutcome: 'failed' }, [
|
|
955
|
+
err,
|
|
956
|
+
]);
|
|
937
957
|
return done(err, false, { message: 'Error updating user' });
|
|
938
958
|
}
|
|
939
959
|
if (_.isEmpty(user)) {
|
|
940
|
-
|
|
960
|
+
that.updateChronicle({ usersOperation: 'aafAuthInit', usersOutcome: 'failed' });
|
|
941
961
|
return done('No user found', false, { message: 'No user found' });
|
|
942
962
|
}
|
|
943
|
-
|
|
944
|
-
that.triggerPostSaveTriggers(user, configAAF);
|
|
945
|
-
}
|
|
946
|
-
if (that.hasPostSaveSyncTriggerConfigured(configAAF, 'onUpdate')) {
|
|
947
|
-
that.triggerPostSaveSyncTriggers(user, configAAF);
|
|
948
|
-
}
|
|
949
|
-
sails.log.verbose('Done, returning updated user:');
|
|
950
|
-
sails.log.verbose(user);
|
|
963
|
+
await that.runLoginPostSaveTriggers(user, configAAF, 'onUpdate');
|
|
951
964
|
const updatedUsers = user;
|
|
952
965
|
that
|
|
953
966
|
.resolveLinkedUserCandidate(updatedUsers[0])
|
|
@@ -970,24 +983,16 @@ var Services;
|
|
|
970
983
|
username: userObj.username,
|
|
971
984
|
})
|
|
972
985
|
.set(userObj)
|
|
973
|
-
.exec(function (err, user) {
|
|
986
|
+
.exec(async function (err, user) {
|
|
974
987
|
if (err) {
|
|
975
|
-
|
|
976
|
-
sails.log.error(err);
|
|
988
|
+
that.updateChronicle({ usersOperation: 'aafAuthInit', usersOutcome: 'failed' }, [err]);
|
|
977
989
|
return done(err, false, { message: 'Error updating user' });
|
|
978
990
|
}
|
|
979
991
|
if (_.isEmpty(user)) {
|
|
980
|
-
|
|
992
|
+
that.updateChronicle({ usersOperation: 'aafAuthInit', usersOutcome: 'failed' });
|
|
981
993
|
return done('No user found', false, { message: 'No user found' });
|
|
982
994
|
}
|
|
983
|
-
|
|
984
|
-
that.triggerPostSaveTriggers(user, configAAF);
|
|
985
|
-
}
|
|
986
|
-
if (that.hasPostSaveSyncTriggerConfigured(configAAF, 'onUpdate')) {
|
|
987
|
-
that.triggerPostSaveSyncTriggers(user, configAAF);
|
|
988
|
-
}
|
|
989
|
-
sails.log.verbose('Done, returning updated user:');
|
|
990
|
-
sails.log.verbose(user);
|
|
995
|
+
await that.runLoginPostSaveTriggers(user, configAAF, 'onUpdate');
|
|
991
996
|
const updatedUsers = user;
|
|
992
997
|
that
|
|
993
998
|
.resolveLinkedUserCandidate(updatedUsers[0])
|
|
@@ -1007,7 +1012,6 @@ var Services;
|
|
|
1007
1012
|
}); // end AAF disabled gate
|
|
1008
1013
|
}
|
|
1009
1014
|
else {
|
|
1010
|
-
sails.log.verbose('At AAF Strategy verify, creating new user...');
|
|
1011
1015
|
// first time login, create with default role
|
|
1012
1016
|
const attrs = (jwt_payload[aafAttributes] ?? {});
|
|
1013
1017
|
const normalizedUsername = String(userName);
|
|
@@ -1047,7 +1051,6 @@ var Services;
|
|
|
1047
1051
|
roles: aafDefRoles,
|
|
1048
1052
|
lastLogin: new Date(),
|
|
1049
1053
|
};
|
|
1050
|
-
sails.log.verbose(`AAF prepared user create request for brand "${brandName}" and username "${aafUsername}"`);
|
|
1051
1054
|
const emailAuthorizedCheck = that.checkAuthorizedEmail(String(userToCreate.email ?? ''), brandName, 'aaf');
|
|
1052
1055
|
if (!emailAuthorizedCheck) {
|
|
1053
1056
|
return done('authorized-email-denied', false);
|
|
@@ -1056,24 +1059,16 @@ var Services;
|
|
|
1056
1059
|
if (that.hasPreSaveTriggerConfigured(configAAF, 'onCreate')) {
|
|
1057
1060
|
that
|
|
1058
1061
|
.triggerPreSaveTriggers(userToCreate, configAAF, 'onCreate')
|
|
1059
|
-
.then((userAdditionalInfo) => {
|
|
1062
|
+
.then(async (userAdditionalInfo) => {
|
|
1060
1063
|
const success = that.checkAllTriggersSuccessOrFailure(userAdditionalInfo);
|
|
1061
1064
|
if (success) {
|
|
1062
1065
|
userToCreate = userAdditionalInfo;
|
|
1063
|
-
User.create(userToCreate).exec(function (err, newUser) {
|
|
1066
|
+
User.create(userToCreate).exec(async function (err, newUser) {
|
|
1064
1067
|
if (err) {
|
|
1065
|
-
|
|
1066
|
-
sails.log.error(err);
|
|
1068
|
+
that.updateChronicle({ usersOperation: 'aafAuthInit', usersOutcome: 'failed' }, [err]);
|
|
1067
1069
|
return done(err, false);
|
|
1068
1070
|
}
|
|
1069
|
-
|
|
1070
|
-
that.triggerPostSaveTriggers(newUser, configAAF, 'onCreate');
|
|
1071
|
-
}
|
|
1072
|
-
if (that.hasPostSaveSyncTriggerConfigured(configAAF, 'onCreate')) {
|
|
1073
|
-
that.triggerPostSaveSyncTriggers(newUser, configAAF, 'onCreate');
|
|
1074
|
-
}
|
|
1075
|
-
sails.log.verbose('Done, returning new user:');
|
|
1076
|
-
sails.log.verbose(newUser);
|
|
1071
|
+
await that.runLoginPostSaveTriggers(newUser, configAAF, 'onCreate');
|
|
1077
1072
|
that
|
|
1078
1073
|
.resolveLinkedUserCandidate(newUser)
|
|
1079
1074
|
.then(resolvedUser => done(null, resolvedUser))
|
|
@@ -1087,20 +1082,12 @@ var Services;
|
|
|
1087
1082
|
});
|
|
1088
1083
|
}
|
|
1089
1084
|
else {
|
|
1090
|
-
User.create(userToCreate).exec(function (err, newUser) {
|
|
1085
|
+
User.create(userToCreate).exec(async function (err, newUser) {
|
|
1091
1086
|
if (err) {
|
|
1092
|
-
|
|
1093
|
-
sails.log.error(err);
|
|
1087
|
+
that.updateChronicle({ usersOperation: 'aafAuthInit', usersOutcome: 'failed' }, [err]);
|
|
1094
1088
|
return done(err, false);
|
|
1095
1089
|
}
|
|
1096
|
-
|
|
1097
|
-
that.triggerPostSaveTriggers(newUser, configAAF, 'onCreate');
|
|
1098
|
-
}
|
|
1099
|
-
if (that.hasPostSaveSyncTriggerConfigured(configAAF, 'onCreate')) {
|
|
1100
|
-
that.triggerPostSaveSyncTriggers(newUser, configAAF, 'onCreate');
|
|
1101
|
-
}
|
|
1102
|
-
sails.log.verbose('Done, returning new user:');
|
|
1103
|
-
sails.log.verbose(newUser);
|
|
1090
|
+
await that.runLoginPostSaveTriggers(newUser, configAAF, 'onCreate');
|
|
1104
1091
|
that
|
|
1105
1092
|
.resolveLinkedUserCandidate(newUser)
|
|
1106
1093
|
.then(resolvedUser => done(null, resolvedUser))
|
|
@@ -1112,18 +1099,13 @@ var Services;
|
|
|
1112
1099
|
});
|
|
1113
1100
|
}));
|
|
1114
1101
|
}
|
|
1115
|
-
else {
|
|
1116
|
-
sails.log.verbose(`AAF strategy registration skipped because "aaf" is not in active providers.`);
|
|
1117
|
-
}
|
|
1118
1102
|
});
|
|
1119
1103
|
};
|
|
1120
1104
|
openIdConnectAuth = () => {
|
|
1121
1105
|
this.registerSailsHook('on', 'ready', async () => {
|
|
1122
1106
|
const defAuthConfig = this.getAuthConfig(BrandingService.getDefault().name);
|
|
1123
|
-
sails.log.verbose(`OIDC, checking if within active array: ${defAuthConfig.active}`);
|
|
1124
1107
|
if (defAuthConfig.active != undefined && defAuthConfig.active.indexOf('oidc') != -1) {
|
|
1125
1108
|
const that = this;
|
|
1126
|
-
sails.log.verbose(`OIDC is active, configuring....`);
|
|
1127
1109
|
let oidcConfigArray = [];
|
|
1128
1110
|
if (Array.isArray(defAuthConfig.oidc)) {
|
|
1129
1111
|
oidcConfigArray = defAuthConfig.oidc;
|
|
@@ -1145,15 +1127,12 @@ var Services;
|
|
|
1145
1127
|
let oidcClientConfig;
|
|
1146
1128
|
if (_.isString(oidcOpts.issuer)) {
|
|
1147
1129
|
const issuerUrl = String(oidcOpts.issuer).replace(/\/+$/, '');
|
|
1148
|
-
sails.log.verbose(`OIDC, using issuer URL for discovery: ${issuerUrl}`);
|
|
1149
1130
|
const discoveryOptions = issuerUrl.startsWith('http://')
|
|
1150
1131
|
? { execute: [openIdClient.allowInsecureRequests] }
|
|
1151
1132
|
: undefined;
|
|
1152
1133
|
oidcClientConfig = await openIdClient.discovery(new URL(issuerUrl), clientId, clientMetadata, undefined, discoveryOptions);
|
|
1153
1134
|
}
|
|
1154
1135
|
else {
|
|
1155
|
-
sails.log.verbose(`OIDC, using issuer hardcoded configuration:`);
|
|
1156
|
-
sails.log.verbose(JSON.stringify(oidcOpts.issuer));
|
|
1157
1136
|
oidcClientConfig = new openIdClient.Configuration(oidcOpts.issuer, clientId, clientMetadata);
|
|
1158
1137
|
const configuredIssuer = String(oidcOpts.issuer?.issuer ?? '');
|
|
1159
1138
|
if (configuredIssuer.startsWith('http://')) {
|
|
@@ -1162,8 +1141,6 @@ var Services;
|
|
|
1162
1141
|
}
|
|
1163
1142
|
const serverMetadata = oidcClientConfig.serverMetadata();
|
|
1164
1143
|
configured = true;
|
|
1165
|
-
sails.log.verbose(`OIDC, Got issuer config, after ${discoverAttemptsCtr} attempt(s).`);
|
|
1166
|
-
sails.log.verbose(serverMetadata);
|
|
1167
1144
|
const verifyCallbackFn = async (req, tokenSet, done) => {
|
|
1168
1145
|
try {
|
|
1169
1146
|
let userinfo;
|
|
@@ -1217,8 +1194,7 @@ var Services;
|
|
|
1217
1194
|
sails.log.info(`OIDC is active, client ${passportIdentifier} configured and ready.`);
|
|
1218
1195
|
}
|
|
1219
1196
|
catch (e) {
|
|
1220
|
-
|
|
1221
|
-
sails.log.error(e);
|
|
1197
|
+
this.updateChronicle({ usersOperation: 'openIdConnectAuth', usersOutcome: 'failed' }, [e]);
|
|
1222
1198
|
await this.sleep(oidcConfig.discoverFailureSleep ?? 1000);
|
|
1223
1199
|
}
|
|
1224
1200
|
}
|
|
@@ -1227,7 +1203,19 @@ var Services;
|
|
|
1227
1203
|
});
|
|
1228
1204
|
};
|
|
1229
1205
|
openIdConnectAuthVerifyCallback(oidcConfig, issuer, req, tokenSet, userinfo = undefined, done) {
|
|
1206
|
+
const originalDone = done;
|
|
1207
|
+
let rejectionOutcome;
|
|
1208
|
+
done = (error, user, info) => {
|
|
1209
|
+
// The controller records errors passed to passport, including string rejections.
|
|
1210
|
+
this.updateChronicle({
|
|
1211
|
+
usersOperation: 'openIdConnectAuthVerifyCallback',
|
|
1212
|
+
usersAuthOutcome: rejectionOutcome ?? (error ? 'failure' : user ? 'success' : 'rejected'),
|
|
1213
|
+
usersAuthUserId: _.get(user, 'id'),
|
|
1214
|
+
});
|
|
1215
|
+
originalDone(error, user, info);
|
|
1216
|
+
};
|
|
1230
1217
|
const that = this;
|
|
1218
|
+
this.updateChronicle({ usersAuthProvider: 'oidc', usersAuthOutcome: 'processing' });
|
|
1231
1219
|
const session = (req.session ?? {});
|
|
1232
1220
|
const query = (req.query ?? {});
|
|
1233
1221
|
const logoutFromAuthServer = _.get(oidcConfig, 'logoutFromAuthServer', true);
|
|
@@ -1247,16 +1235,8 @@ var Services;
|
|
|
1247
1235
|
query.redirUrl = session.redirUrl;
|
|
1248
1236
|
req.query = query;
|
|
1249
1237
|
}
|
|
1250
|
-
sails.log.verbose(`OIDC login success, tokenset: `);
|
|
1251
|
-
sails.log.verbose(JSON.stringify((0, RedactionUtils_1.redactObject)(tokenSet)));
|
|
1252
|
-
sails.log.verbose(`Claims:`);
|
|
1253
1238
|
const tokenClaims = typeof tokenSet.claims === 'function' ? tokenSet.claims() : {};
|
|
1254
|
-
|
|
1255
|
-
if (!_.isUndefined(userinfo)) {
|
|
1256
|
-
sails.log.verbose(`Userinfo:`);
|
|
1257
|
-
sails.log.verbose(JSON.stringify((0, RedactionUtils_1.redactObject)(userinfo)));
|
|
1258
|
-
}
|
|
1259
|
-
else {
|
|
1239
|
+
if (_.isUndefined(userinfo)) {
|
|
1260
1240
|
userinfo = tokenClaims;
|
|
1261
1241
|
}
|
|
1262
1242
|
if (oidcConfig.debugMode === true) {
|
|
@@ -1279,20 +1259,19 @@ var Services;
|
|
|
1279
1259
|
if (!_.isUndefined(claimsMappingOptions) && !_.isEmpty(claimsMappingOptions)) {
|
|
1280
1260
|
usernameToLowercase = !!claimsMappingOptions['usernameToLowercase'];
|
|
1281
1261
|
}
|
|
1282
|
-
sails.log.verbose('usernameToLowercase ' + usernameToLowercase);
|
|
1283
1262
|
if (usernameToLowercase) {
|
|
1284
1263
|
userName = tmpUserName.toLowerCase();
|
|
1285
|
-
sails.log.verbose('usernameToLowercase ' + userName);
|
|
1286
1264
|
}
|
|
1287
1265
|
else {
|
|
1288
1266
|
userName = tmpUserName;
|
|
1289
|
-
sails.log.verbose(userName);
|
|
1290
1267
|
}
|
|
1291
1268
|
const defAuthRole = RolesService.getDefAuthenticatedRole(brand);
|
|
1292
1269
|
const defAuthRoleName = defAuthRole?.name ?? 'Researcher';
|
|
1293
1270
|
const openIdConnectDefRoles = _.map(RolesService.getNestedRoles(defAuthRoleName, brand.roles), 'id');
|
|
1294
1271
|
// This can occur when the claim mappings are incorrect or a login was cancelled
|
|
1295
1272
|
if (_.isEmpty(userName)) {
|
|
1273
|
+
rejectionOutcome = 'missing-username';
|
|
1274
|
+
this.updateChronicle({ usersAuthOutcome: 'missing-username' }, [new Error('OIDC username claim is missing.')]);
|
|
1296
1275
|
return done(null, null, {
|
|
1297
1276
|
message: 'Rejected as username does not have a value',
|
|
1298
1277
|
});
|
|
@@ -1300,12 +1279,6 @@ var Services;
|
|
|
1300
1279
|
User.findOne({
|
|
1301
1280
|
username: userName,
|
|
1302
1281
|
}, function (err, user) {
|
|
1303
|
-
sails.log.verbose('At OIDC Strategy verify, payload:');
|
|
1304
|
-
sails.log.verbose((0, RedactionUtils_1.redactObject)(userinfo));
|
|
1305
|
-
sails.log.verbose('User:');
|
|
1306
|
-
sails.log.verbose(user);
|
|
1307
|
-
sails.log.verbose('Error:');
|
|
1308
|
-
sails.log.verbose(err);
|
|
1309
1282
|
if (err) {
|
|
1310
1283
|
return done(err, false);
|
|
1311
1284
|
}
|
|
@@ -1314,8 +1287,8 @@ var Services;
|
|
|
1314
1287
|
// Gate disabled users
|
|
1315
1288
|
that
|
|
1316
1289
|
.assertAuthenticationAllowed(userObj)
|
|
1317
|
-
.then(() => {
|
|
1318
|
-
|
|
1290
|
+
.then(async () => {
|
|
1291
|
+
that.updateChronicle({ usersUserUpdate: 'processing' });
|
|
1319
1292
|
userObj.lastLogin = new Date();
|
|
1320
1293
|
const additionalAttributesMapping = claimsMappings['additionalAttributes'];
|
|
1321
1294
|
userObj.additionalAttributes = that.mapAdditionalAttributes(userinfo, (typeof additionalAttributesMapping === 'object' && additionalAttributesMapping != null
|
|
@@ -1334,31 +1307,27 @@ var Services;
|
|
|
1334
1307
|
if (that.hasPreSaveTriggerConfigured(oidcConfig, 'onUpdate')) {
|
|
1335
1308
|
that
|
|
1336
1309
|
.triggerPreSaveTriggers(userObj, oidcConfig)
|
|
1337
|
-
.then((userAdditionalInfo) => {
|
|
1310
|
+
.then(async (userAdditionalInfo) => {
|
|
1338
1311
|
const success = that.checkAllTriggersSuccessOrFailure(userAdditionalInfo);
|
|
1339
1312
|
if (success) {
|
|
1340
1313
|
User.update({
|
|
1341
1314
|
username: _.get(userAdditionalInfo, 'username'),
|
|
1342
1315
|
})
|
|
1343
1316
|
.set(userAdditionalInfo)
|
|
1344
|
-
.exec(function (err, user) {
|
|
1317
|
+
.exec(async function (err, user) {
|
|
1345
1318
|
if (err) {
|
|
1346
|
-
|
|
1347
|
-
sails.log.error(err);
|
|
1319
|
+
that.updateChronicle({ usersOperation: 'openIdConnectAuthVerifyCallback', usersOutcome: 'failed' }, [err]);
|
|
1348
1320
|
return done(err, false);
|
|
1349
1321
|
}
|
|
1350
1322
|
if (_.isEmpty(user)) {
|
|
1351
|
-
|
|
1323
|
+
that.updateChronicle({
|
|
1324
|
+
usersOperation: 'openIdConnectAuthVerifyCallback',
|
|
1325
|
+
usersOutcome: 'failed',
|
|
1326
|
+
});
|
|
1352
1327
|
return done('No user found', false);
|
|
1353
1328
|
}
|
|
1354
|
-
|
|
1355
|
-
that.triggerPostSaveTriggers(user, oidcConfig);
|
|
1356
|
-
}
|
|
1357
|
-
if (that.hasPostSaveSyncTriggerConfigured(oidcConfig, 'onUpdate')) {
|
|
1358
|
-
that.triggerPostSaveSyncTriggers(user, oidcConfig);
|
|
1359
|
-
}
|
|
1329
|
+
await that.runLoginPostSaveTriggers(user, oidcConfig, 'onUpdate');
|
|
1360
1330
|
const updatedUsers = user;
|
|
1361
|
-
sails.log.verbose(`Done, returning updated user id=${String(updatedUsers[0]?.id ?? 'unknown')}`);
|
|
1362
1331
|
that
|
|
1363
1332
|
.resolveLinkedUserCandidate(updatedUsers[0])
|
|
1364
1333
|
.then(resolvedUser => done(null, resolvedUser))
|
|
@@ -1376,24 +1345,19 @@ var Services;
|
|
|
1376
1345
|
username: userObj.username,
|
|
1377
1346
|
})
|
|
1378
1347
|
.set(userObj)
|
|
1379
|
-
.exec(function (err, user) {
|
|
1348
|
+
.exec(async function (err, user) {
|
|
1380
1349
|
if (err) {
|
|
1381
|
-
|
|
1382
|
-
sails.log.error(err);
|
|
1350
|
+
that.updateChronicle({ usersOperation: 'openIdConnectAuthVerifyCallback', usersOutcome: 'failed' }, [err]);
|
|
1383
1351
|
return done(err, false);
|
|
1384
1352
|
}
|
|
1385
1353
|
if (_.isEmpty(user)) {
|
|
1386
|
-
|
|
1354
|
+
that.updateChronicle({
|
|
1355
|
+
usersOperation: 'openIdConnectAuthVerifyCallback',
|
|
1356
|
+
usersOutcome: 'failed',
|
|
1357
|
+
});
|
|
1387
1358
|
return done('No user found', false);
|
|
1388
1359
|
}
|
|
1389
|
-
|
|
1390
|
-
that.triggerPostSaveTriggers(user, oidcConfig);
|
|
1391
|
-
}
|
|
1392
|
-
if (that.hasPostSaveSyncTriggerConfigured(oidcConfig, 'onUpdate')) {
|
|
1393
|
-
that.triggerPostSaveSyncTriggers(user, oidcConfig);
|
|
1394
|
-
}
|
|
1395
|
-
sails.log.verbose('Done, returning updated user:');
|
|
1396
|
-
sails.log.verbose(user);
|
|
1360
|
+
await that.runLoginPostSaveTriggers(user, oidcConfig, 'onUpdate');
|
|
1397
1361
|
const updatedUsers = user;
|
|
1398
1362
|
that
|
|
1399
1363
|
.resolveLinkedUserCandidate(updatedUsers[0])
|
|
@@ -1411,7 +1375,6 @@ var Services;
|
|
|
1411
1375
|
}); // end OIDC disabled gate
|
|
1412
1376
|
}
|
|
1413
1377
|
else {
|
|
1414
|
-
sails.log.verbose('At OIDC Strategy verify, creating new user...');
|
|
1415
1378
|
let userToCreate;
|
|
1416
1379
|
try {
|
|
1417
1380
|
const additionalAttributesMapping = claimsMappings['additionalAttributes'];
|
|
@@ -1434,12 +1397,9 @@ var Services;
|
|
|
1434
1397
|
};
|
|
1435
1398
|
}
|
|
1436
1399
|
catch (e) {
|
|
1437
|
-
|
|
1438
|
-
sails.log.error(e);
|
|
1400
|
+
that.updateChronicle({ usersOperation: 'openIdConnectAuthVerifyCallback', usersOutcome: 'failed' }, [e]);
|
|
1439
1401
|
return done(e, false);
|
|
1440
1402
|
}
|
|
1441
|
-
sails.log.verbose(`Creating user: `);
|
|
1442
|
-
sails.log.verbose(userToCreate);
|
|
1443
1403
|
const emailAuthorizedCheck = that.checkAuthorizedEmail(String(userToCreate.email ?? ''), brandName, 'oidc');
|
|
1444
1404
|
if (!emailAuthorizedCheck) {
|
|
1445
1405
|
return done('authorized-email-denied', false);
|
|
@@ -1447,22 +1407,15 @@ var Services;
|
|
|
1447
1407
|
if (that.hasPreSaveTriggerConfigured(oidcConfig, 'onCreate')) {
|
|
1448
1408
|
that
|
|
1449
1409
|
.triggerPreSaveTriggers(userToCreate, oidcConfig)
|
|
1450
|
-
.then((userAdditionalInfo) => {
|
|
1410
|
+
.then(async (userAdditionalInfo) => {
|
|
1451
1411
|
const success = that.checkAllTriggersSuccessOrFailure(userAdditionalInfo);
|
|
1452
1412
|
if (success) {
|
|
1453
|
-
User.create(userAdditionalInfo).exec(function (err, newUser) {
|
|
1413
|
+
User.create(userAdditionalInfo).exec(async function (err, newUser) {
|
|
1454
1414
|
if (err) {
|
|
1455
|
-
|
|
1456
|
-
sails.log.error(err);
|
|
1415
|
+
that.updateChronicle({ usersOperation: 'openIdConnectAuthVerifyCallback', usersOutcome: 'failed' }, [err]);
|
|
1457
1416
|
return done(err, false);
|
|
1458
1417
|
}
|
|
1459
|
-
|
|
1460
|
-
that.triggerPostSaveTriggers(newUser, oidcConfig);
|
|
1461
|
-
}
|
|
1462
|
-
if (that.hasPostSaveSyncTriggerConfigured(oidcConfig, 'onCreate')) {
|
|
1463
|
-
that.triggerPostSaveSyncTriggers(newUser, oidcConfig);
|
|
1464
|
-
}
|
|
1465
|
-
sails.log.verbose(`Done, returning new user id=${String(newUser?.id ?? 'unknown')}`);
|
|
1418
|
+
await that.runLoginPostSaveTriggers(newUser, oidcConfig, 'onCreate');
|
|
1466
1419
|
that
|
|
1467
1420
|
.resolveLinkedUserCandidate(newUser)
|
|
1468
1421
|
.then(resolvedUser => done(null, resolvedUser))
|
|
@@ -1476,20 +1429,14 @@ var Services;
|
|
|
1476
1429
|
});
|
|
1477
1430
|
}
|
|
1478
1431
|
else {
|
|
1479
|
-
User.create(userToCreate).exec(function (err, newUser) {
|
|
1432
|
+
User.create(userToCreate).exec(async function (err, newUser) {
|
|
1480
1433
|
if (err) {
|
|
1481
|
-
|
|
1482
|
-
|
|
1434
|
+
that.updateChronicle({ usersOperation: 'openIdConnectAuthVerifyCallback', usersOutcome: 'failed' }, [
|
|
1435
|
+
err,
|
|
1436
|
+
]);
|
|
1483
1437
|
return done(err, false);
|
|
1484
1438
|
}
|
|
1485
|
-
|
|
1486
|
-
that.triggerPostSaveTriggers(newUser, oidcConfig);
|
|
1487
|
-
}
|
|
1488
|
-
if (that.hasPostSaveSyncTriggerConfigured(oidcConfig, 'onCreate')) {
|
|
1489
|
-
that.triggerPostSaveSyncTriggers(newUser, oidcConfig);
|
|
1490
|
-
}
|
|
1491
|
-
sails.log.verbose('Done, returning new user:');
|
|
1492
|
-
sails.log.verbose(newUser);
|
|
1439
|
+
await that.runLoginPostSaveTriggers(newUser, oidcConfig, 'onCreate');
|
|
1493
1440
|
that
|
|
1494
1441
|
.resolveLinkedUserCandidate(newUser)
|
|
1495
1442
|
.then(resolvedUser => done(null, resolvedUser))
|
|
@@ -1510,7 +1457,7 @@ var Services;
|
|
|
1510
1457
|
token: tokenHash,
|
|
1511
1458
|
})
|
|
1512
1459
|
.populate('roles')
|
|
1513
|
-
.exec(function (err, user) {
|
|
1460
|
+
.exec(async function (err, user) {
|
|
1514
1461
|
if (err) {
|
|
1515
1462
|
return done(err);
|
|
1516
1463
|
}
|
|
@@ -1520,7 +1467,7 @@ var Services;
|
|
|
1520
1467
|
// Gate disabled users
|
|
1521
1468
|
that
|
|
1522
1469
|
.assertAuthenticationAllowed(user)
|
|
1523
|
-
.then(() => {
|
|
1470
|
+
.then(async () => {
|
|
1524
1471
|
that
|
|
1525
1472
|
.resolveLinkedUserCandidate(user)
|
|
1526
1473
|
.then(resolvedUser => done(null, resolvedUser, {
|
|
@@ -1562,7 +1509,6 @@ var Services;
|
|
|
1562
1509
|
if (authConfig.local?.default?.token) {
|
|
1563
1510
|
defaultUser['token'] = crypto.createHash('sha256').update(authConfig.local.default.token).digest('base64');
|
|
1564
1511
|
}
|
|
1565
|
-
sails.log.verbose('Default user missing, creating...');
|
|
1566
1512
|
return super.getObservable(User.create(defaultUser)).pipe((0, operators_1.mergeMap)(defUser => {
|
|
1567
1513
|
// START Sails 1.0 upgrade
|
|
1568
1514
|
const defRoleIds = _.map(defRoles, (o) => {
|
|
@@ -1610,7 +1556,7 @@ var Services;
|
|
|
1610
1556
|
addUserAuditEvent = (user, action, additionalContext) => {
|
|
1611
1557
|
// ignore audit events for users with no user, which had crashed the app when user has already logged out
|
|
1612
1558
|
if (_.isEmpty(user)) {
|
|
1613
|
-
|
|
1559
|
+
this.updateChronicle({ usersAuditAction: action, usersAuditOutcome: 'no-user' });
|
|
1614
1560
|
return (0, rxjs_1.firstValueFrom)((0, rxjs_1.of)(null));
|
|
1615
1561
|
}
|
|
1616
1562
|
const auditEvent = {};
|
|
@@ -1622,8 +1568,7 @@ var Services;
|
|
|
1622
1568
|
auditEvent['user'] = userObj;
|
|
1623
1569
|
auditEvent['action'] = action;
|
|
1624
1570
|
auditEvent['additionalContext'] = this.stringifyObject(additionalContext);
|
|
1625
|
-
|
|
1626
|
-
sails.log.verbose(auditEvent);
|
|
1571
|
+
this.updateChronicle({ usersAuditAction: action, usersAuditUserId: userObj.id, usersAuditOutcome: 'submitted' });
|
|
1627
1572
|
return (0, rxjs_1.firstValueFrom)(super.getObservable(UserAudit.create(auditEvent)));
|
|
1628
1573
|
};
|
|
1629
1574
|
stringifyObject(object) {
|
|
@@ -1679,7 +1624,6 @@ var Services;
|
|
|
1679
1624
|
}
|
|
1680
1625
|
*/
|
|
1681
1626
|
bootstrap = (defRoles) => {
|
|
1682
|
-
sails.log.verbose('Bootstrapping users....');
|
|
1683
1627
|
const defAdminRole = RolesService.getAdminFromRoles(defRoles);
|
|
1684
1628
|
return (0, rxjs_1.of)(defAdminRole).pipe((0, operators_1.mergeMap)(defAdminRole => {
|
|
1685
1629
|
this.localAuthInit();
|
|
@@ -1959,7 +1903,7 @@ var Services;
|
|
|
1959
1903
|
}, {
|
|
1960
1904
|
token: uuidHash,
|
|
1961
1905
|
});
|
|
1962
|
-
return this.getObservable(q, 'exec', '
|
|
1906
|
+
return this.getObservable(q, 'exec', 'node').pipe((0, operators_1.map)((updatedUsers) => updatedUsers[0] ?? user));
|
|
1963
1907
|
}
|
|
1964
1908
|
else {
|
|
1965
1909
|
return (0, rxjs_1.throwError)(new Error('No such user with id:' + userid));
|
|
@@ -2020,18 +1964,15 @@ var Services;
|
|
|
2020
1964
|
username: userObj.username,
|
|
2021
1965
|
})
|
|
2022
1966
|
.set(userObj)
|
|
2023
|
-
.exec(
|
|
1967
|
+
.exec((err, user) => {
|
|
2024
1968
|
if (err) {
|
|
2025
|
-
|
|
2026
|
-
sails.log.error(err);
|
|
1969
|
+
this.updateChronicle({ usersOperation: 'updateUserAfterLogin', usersOutcome: 'failed' }, [err]);
|
|
2027
1970
|
return done(err, false);
|
|
2028
1971
|
}
|
|
2029
1972
|
if (_.isEmpty(user)) {
|
|
2030
|
-
|
|
1973
|
+
this.updateChronicle({ usersOperation: 'updateUserAfterLogin', usersOutcome: 'failed' });
|
|
2031
1974
|
return done('No user found', false);
|
|
2032
1975
|
}
|
|
2033
|
-
sails.log.verbose('Done, returning updated user:');
|
|
2034
|
-
sails.log.verbose(user);
|
|
2035
1976
|
const updatedUsers = user;
|
|
2036
1977
|
return done(null, updatedUsers[0]);
|
|
2037
1978
|
});
|
|
@@ -2104,10 +2045,8 @@ var Services;
|
|
|
2104
2045
|
});
|
|
2105
2046
|
const recordsArr = records;
|
|
2106
2047
|
if (_.isEmpty(recordsArr)) {
|
|
2107
|
-
sails.log.verbose(`UsersService::findAndAssignAccessToRecords() -> No pending records: ${pendingValue}`);
|
|
2108
2048
|
return 0;
|
|
2109
2049
|
}
|
|
2110
|
-
sails.log.verbose(`UsersService::findAndAssignAccessToRecords() -> Found ${recordsArr.length} records to assign permissions`);
|
|
2111
2050
|
let updated = 0;
|
|
2112
2051
|
for (const record of recordsArr) {
|
|
2113
2052
|
const recordObj = record;
|
|
@@ -2130,20 +2069,20 @@ var Services;
|
|
|
2130
2069
|
checkAuthorizedEmail(email, branding, authType) {
|
|
2131
2070
|
// Must pass email.
|
|
2132
2071
|
if (!email) {
|
|
2133
|
-
|
|
2072
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'missing-email' }, [], 'warn');
|
|
2134
2073
|
return false;
|
|
2135
2074
|
}
|
|
2136
2075
|
// Assess email address.
|
|
2137
2076
|
const emailParts = email.includes('@') ? email.split('@') : [];
|
|
2138
2077
|
if (emailParts.length !== 2) {
|
|
2139
|
-
|
|
2078
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'invalid-address' }, [], 'warn');
|
|
2140
2079
|
return false;
|
|
2141
2080
|
}
|
|
2142
2081
|
// Get the configuration data.
|
|
2143
2082
|
const brandingAwareData = sails.config.brandingAware(branding);
|
|
2144
2083
|
const authorizedDomainsEmails = _.get(brandingAwareData, 'authorizedDomainsEmails', {});
|
|
2145
2084
|
if (authorizedDomainsEmails.enabled?.toString() !== 'true') {
|
|
2146
|
-
|
|
2085
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'disabled' }, [], 'warn');
|
|
2147
2086
|
return true;
|
|
2148
2087
|
}
|
|
2149
2088
|
const domains = [];
|
|
@@ -2157,36 +2096,31 @@ var Services;
|
|
|
2157
2096
|
emails.push(...(authorizedDomainsEmails.emailsOidc || []));
|
|
2158
2097
|
}
|
|
2159
2098
|
else {
|
|
2160
|
-
|
|
2099
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'unsupported-provider' }, [], 'warn');
|
|
2161
2100
|
return false;
|
|
2162
2101
|
}
|
|
2163
2102
|
// Check configuration.
|
|
2164
|
-
if (domains.length === 0) {
|
|
2165
|
-
sails.log.verbose(`No authorized email domains configured for ${authType}.`);
|
|
2166
|
-
}
|
|
2167
|
-
if (emails.length === 0) {
|
|
2168
|
-
sails.log.verbose(`No authorized email exceptions configured for ${authType}.`);
|
|
2169
|
-
}
|
|
2170
2103
|
if (domains.length === 0 && emails.length === 0) {
|
|
2104
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'unrestricted' });
|
|
2171
2105
|
return true;
|
|
2172
2106
|
}
|
|
2173
2107
|
// Assess domains and exceptions.
|
|
2174
2108
|
const emailDomain = emailParts[1];
|
|
2175
2109
|
const isAllowedDomain = domains.indexOf(emailDomain) !== -1;
|
|
2176
2110
|
if (isAllowedDomain) {
|
|
2177
|
-
|
|
2111
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'allowed-domain' });
|
|
2178
2112
|
return true;
|
|
2179
2113
|
}
|
|
2180
2114
|
const isAllowedException = emails.indexOf(email) !== -1;
|
|
2181
2115
|
if (isAllowedException) {
|
|
2182
|
-
|
|
2116
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'allowed-exception' });
|
|
2183
2117
|
return true;
|
|
2184
2118
|
}
|
|
2185
2119
|
// Checks did not pass, so email is not allowed.
|
|
2186
|
-
|
|
2120
|
+
this.updateChronicle({ usersEmailAccessOutcome: 'denied', usersAuthProvider: authType }, [], 'warn');
|
|
2187
2121
|
return false;
|
|
2188
2122
|
}
|
|
2189
2123
|
}
|
|
2190
2124
|
Services.Users = Users;
|
|
2191
2125
|
})(Services || (exports.Services = Services = {}));
|
|
2192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlcnNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL1VzZXJzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFBd0U7QUFDeEUsOENBQWdFO0FBRWhFLCtCQUFvQztBQVFwQyxnREFBc0Q7QUFDdEQsZ0VBQTJEO0FBRTNELCtDQUFpQztBQUlqQyxJQUFpQixRQUFRLENBaWpGeEI7QUFqakZELFdBQWlCLFFBQVE7SUFHdkIsTUFBTSw0QkFBNEIsR0FBRywrQkFBK0IsQ0FBQztJQUNyRSxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztJQThHekM7Ozs7OztPQU1HO0lBQ0gsTUFBYSxLQUFNLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUMzQixnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxZQUFZO1lBQ1osU0FBUztZQUNULG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLDhCQUE4QjtZQUM5QixVQUFVO1lBQ1Ysa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsc0JBQXNCO1lBQ3RCLHVD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
|
|
2126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlcnNTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL1VzZXJzU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFBc0Y7QUFDdEYsOENBQWdFO0FBRWhFLCtCQUFvQztBQVFwQyxnREFBc0Q7QUFFdEQsK0NBQWlDO0FBSWpDLElBQWlCLFFBQVEsQ0EwL0V4QjtBQTEvRUQsV0FBaUIsUUFBUTtJQUd2QixNQUFNLDRCQUE0QixHQUFHLCtCQUErQixDQUFDO0lBQ3JFLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0lBOEd6Qzs7Ozs7O09BTUc7SUFDSCxNQUFhLEtBQU0sU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBQzNCLGdCQUFnQixHQUFhO1lBQzlDLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLFlBQVk7WUFDWixTQUFTO1lBQ1QsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsOEJBQThCO1lBQzlCLFVBQVU7WUFDVixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsdUNBQXVDO1lBQ3ZDLGFB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
|