"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAndCheckPassportByEmail = getAndCheckPassportByEmail; const assert_1 = require("oak-domain/lib/utils/assert"); const types_1 = require("oak-domain/lib/types"); async function getAndCheckPassportByEmail(context, email) { const application = context.getApplication(); const { system } = application; const [applicationPassport] = await context.select('applicationPassport', { data: { id: 1, passportId: 1, passport: { id: 1, config: 1, type: 1, }, applicationId: 1, }, filter: { applicationId: application?.id, passport: { type: 'email', }, }, }, { dontCollect: true, }); (0, assert_1.assert)(applicationPassport?.passport); const config = applicationPassport.passport.config; const emailConfig = system?.config.Emails?.find((ele) => ele.account === config.account); (0, assert_1.assert)(emailConfig); const emailSuffixes = config.emailSuffixes; // 检查邮箱后缀是否满足配置 if (emailSuffixes?.length > 0) { let isValid = false; for (const suffix of emailSuffixes) { if (email.endsWith(suffix)) { isValid = true; break; } } if (!isValid) { throw new types_1.OakUserException('error::user.emailSuffixIsInvalid'); } } return { emailConfig, config }; }