UNPKG

n8n

Version:

n8n Workflow Automation Tool

38 lines 2.16 kB
"use strict"; const api_types_1 = require("@n8n/api-types"); const config_1 = require("@n8n/config"); const di_1 = require("@n8n/di"); const bad_request_error_1 = require("../../../../errors/response-errors/bad-request.error"); const conflict_error_1 = require("../../../../errors/response-errors/conflict.error"); const saml_service_ee_1 = require("../../../../modules/sso-saml/saml.service.ee"); const sso_saml_mapper_1 = require("./sso-saml.mapper"); const global_middleware_1 = require("../../shared/middlewares/global.middleware"); const ssoSamlHandlers = { getSamlConfiguration: [ (0, global_middleware_1.isLicensed)('feat:saml'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'saml:manage' }), async (_req, res) => { const samlService = di_1.Container.get(saml_service_ee_1.SamlService); return res.json((0, sso_saml_mapper_1.toSamlConfigurationResponse)(samlService.samlPreferences)); }, ], updateSamlConfiguration: [ (0, global_middleware_1.isLicensed)('feat:saml'), (0, global_middleware_1.apiKeyHasScopeWithGlobalScopeFallback)({ scope: 'saml:manage' }), async (req, res) => { const payload = api_types_1.UpdateSamlConfigurationDto.safeParse(req.body); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors[0]?.message ?? 'Invalid request body'); } const { ssoManagedByEnv } = di_1.Container.get(config_1.InstanceSettingsLoaderConfig); if (ssoManagedByEnv) { throw new conflict_error_1.ConflictError('SSO configuration is managed declaratively and cannot be modified through the API'); } const samlService = di_1.Container.get(saml_service_ee_1.SamlService); await samlService.setSamlPreferences((0, sso_saml_mapper_1.toSamlPreferencesUpdate)(payload.data)); return res.json((0, sso_saml_mapper_1.toSamlConfigurationResponse)(samlService.samlPreferences)); }, ], }; module.exports = ssoSamlHandlers; //# sourceMappingURL=sso-saml.handler.js.map