mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-24 09:28:31 +00:00
Fix/smtp creds env (#12634)
* submodule update commit * fix: updated smtp env creds * fix: updated smtp route, added base flag * feat: added smtp util service * fix: removed instanceSettings module * fix: updated email to use smtpUtil, removed instanceUtil * fix: added smtpmodule import * fix: removed instance settings module from email module
This commit is contained in:
parent
64a4eb3f9e
commit
f5230a8529
7 changed files with 47 additions and 15 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit 9aa23fc0aa78a84dd13dd7308fa3de63c9c553ff
|
Subproject commit dfecbc41b216cea248245c862a0c362756c6b70d
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 9099be6814072b4e37713af6f374868b027c95f8
|
Subproject commit ec251e560902d7fc7cd5c97bfcc6de539e40cd13
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { DynamicModule } from '@nestjs/common';
|
import { DynamicModule } from '@nestjs/common';
|
||||||
import { getImportPath } from '@modules/app/constants';
|
import { getImportPath } from '@modules/app/constants';
|
||||||
import { WhiteLabellingModule } from '@modules/white-labelling/module';
|
import { WhiteLabellingModule } from '@modules/white-labelling/module';
|
||||||
import { InstanceSettingsModule } from '@modules/instance-settings/module';
|
|
||||||
import { DataSourcesModule } from '@modules/data-sources/module';
|
import { DataSourcesModule } from '@modules/data-sources/module';
|
||||||
|
import { SMTPModule } from '@modules/smtp/module';
|
||||||
|
|
||||||
export class EmailModule {
|
export class EmailModule {
|
||||||
static async register(configs?: { IS_GET_CONTEXT: boolean }): Promise<DynamicModule> {
|
static async register(configs?: { IS_GET_CONTEXT: boolean }): Promise<DynamicModule> {
|
||||||
|
|
@ -14,8 +14,8 @@ export class EmailModule {
|
||||||
module: EmailModule,
|
module: EmailModule,
|
||||||
imports: [
|
imports: [
|
||||||
await WhiteLabellingModule.register(configs),
|
await WhiteLabellingModule.register(configs),
|
||||||
await InstanceSettingsModule.register(configs),
|
|
||||||
await DataSourcesModule.register(configs),
|
await DataSourcesModule.register(configs),
|
||||||
|
await SMTPModule.register(configs),
|
||||||
],
|
],
|
||||||
providers: [EmailService, EmailListener, EmailUtilService],
|
providers: [EmailService, EmailListener, EmailUtilService],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
import { IEmailUtilService } from '@modules/email/interfaces/IUtilService';
|
import { IEmailUtilService } from '@modules/email/interfaces/IUtilService';
|
||||||
import { INSTANCE_SETTINGS_TYPE, INSTANCE_SYSTEM_SETTINGS } from '@modules/instance-settings/constants';
|
import { INSTANCE_SETTINGS_TYPE, INSTANCE_SYSTEM_SETTINGS } from '@modules/instance-settings/constants';
|
||||||
import { InstanceSettingsUtilService } from '@modules/instance-settings/util.service';
|
|
||||||
import { WhiteLabellingUtilService } from '@modules/white-labelling/util.service';
|
import { WhiteLabellingUtilService } from '@modules/white-labelling/util.service';
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import { SMTPUtilService } from '@modules/smtp/util.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class EmailUtilService implements IEmailUtilService {
|
export class EmailUtilService implements IEmailUtilService {
|
||||||
constructor(
|
constructor(
|
||||||
protected readonly instanceSettingsUtilService: InstanceSettingsUtilService,
|
protected readonly whiteLabellingUtilService: WhiteLabellingUtilService,
|
||||||
protected readonly whiteLabellingUtilService: WhiteLabellingUtilService
|
protected readonly smtpUtilService: SMTPUtilService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async retrieveWhiteLabelSettings(organizationId?: string | null): Promise<any> {
|
async retrieveWhiteLabelSettings(organizationId?: string | null): Promise<any> {
|
||||||
|
|
@ -17,7 +17,7 @@ export class EmailUtilService implements IEmailUtilService {
|
||||||
}
|
}
|
||||||
|
|
||||||
async retrieveSmtpSettings(): Promise<any> {
|
async retrieveSmtpSettings(): Promise<any> {
|
||||||
const smtpSetting = await this.instanceSettingsUtilService.getSettings(
|
const smtpSetting = await this.smtpUtilService.getSmtpEnv(
|
||||||
[
|
[
|
||||||
INSTANCE_SYSTEM_SETTINGS.SMTP_ENABLED,
|
INSTANCE_SYSTEM_SETTINGS.SMTP_ENABLED,
|
||||||
INSTANCE_SYSTEM_SETTINGS.SMTP_DOMAIN,
|
INSTANCE_SYSTEM_SETTINGS.SMTP_DOMAIN,
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,6 @@ export function getDefaultInstanceSettings() {
|
||||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_PASSWORD]: process.env.SMTP_PASSWORD,
|
[INSTANCE_SYSTEM_SETTINGS.SMTP_PASSWORD]: process.env.SMTP_PASSWORD,
|
||||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_ENABLED]: process.env.SMTP_DISABLED === 'true' ? 'false' : 'true',
|
[INSTANCE_SYSTEM_SETTINGS.SMTP_ENABLED]: process.env.SMTP_DISABLED === 'true' ? 'false' : 'true',
|
||||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_ENV_CONFIGURED]: 'true',
|
[INSTANCE_SYSTEM_SETTINGS.SMTP_ENV_CONFIGURED]: 'true',
|
||||||
[INSTANCE_SYSTEM_SETTINGS.SMTP_FROM_EMAIL]: process.env.DEFAULT_FROM_EMAIL
|
[INSTANCE_SYSTEM_SETTINGS.SMTP_FROM_EMAIL]: process.env.DEFAULT_FROM_EMAIL,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,13 @@ export class SMTPModule {
|
||||||
const importPath = await getImportPath(configs?.IS_GET_CONTEXT);
|
const importPath = await getImportPath(configs?.IS_GET_CONTEXT);
|
||||||
const { SMTPService } = await import(`${importPath}/smtp/service`);
|
const { SMTPService } = await import(`${importPath}/smtp/service`);
|
||||||
const { SmtpController } = await import(`${importPath}/smtp/controller`);
|
const { SmtpController } = await import(`${importPath}/smtp/controller`);
|
||||||
const { SMTPUtilService } = await import(`${importPath}/smtp/util.service`)
|
const { SMTPUtilService } = await import(`${importPath}/smtp/util.service`);
|
||||||
return {
|
return {
|
||||||
module: SMTPModule,
|
module: SMTPModule,
|
||||||
imports: [await InstanceSettingsModule.register(configs)],
|
imports: [await InstanceSettingsModule.register(configs)],
|
||||||
controllers: [SmtpController],
|
controllers: [SmtpController],
|
||||||
providers: [SMTPService, FeatureAbilityFactory, SMTPUtilService],
|
providers: [SMTPService, FeatureAbilityFactory, SMTPUtilService],
|
||||||
|
exports: [SMTPUtilService],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,40 @@
|
||||||
import { Injectable } from "@nestjs/common";
|
import { Injectable } from '@nestjs/common';
|
||||||
import { ISMTPUtilService } from "./interfaces/IUtilService";
|
import { ISMTPUtilService } from './interfaces/IUtilService';
|
||||||
|
import { getDefaultInstanceSettings } from '@modules/instance-settings/constants';
|
||||||
|
import { InstanceSettingsUtilService } from '@modules/instance-settings/util.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class SMTPUtilService implements ISMTPUtilService {
|
export class SMTPUtilService implements ISMTPUtilService {
|
||||||
getSmtpEnv(key?: string | string[], getAllData = false, type?: any): Promise<any> {
|
constructor(protected instanceSettingsUtilService: InstanceSettingsUtilService) {}
|
||||||
throw new Error('Method not implemented.');
|
async getSmtpEnv(key?: string | string[], getAllData = false, type?: any): Promise<any> {
|
||||||
|
const defaultInstanceSettings = getDefaultInstanceSettings();
|
||||||
|
const instanceSmtpConfig = await this.instanceSettingsUtilService.getSettings(key, false, type);
|
||||||
|
|
||||||
|
if (instanceSmtpConfig.SMTP_ENV_CONFIGURED === 'true') {
|
||||||
|
let settings = Object.keys(defaultInstanceSettings)
|
||||||
|
.filter((e) => (Array.isArray(key) ? key.includes(e) : key === e))
|
||||||
|
.map((e) => ({ key: e, value: defaultInstanceSettings[e] }));
|
||||||
|
|
||||||
|
if (!settings) {
|
||||||
|
settings = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key) {
|
||||||
|
(Array.isArray(key) ? key : [key]).forEach((s) => {
|
||||||
|
if (!settings.some((e) => e.key === s)) {
|
||||||
|
settings.push({ key: s, value: null });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const instanceConfigs = {};
|
||||||
|
settings?.forEach((config) => {
|
||||||
|
instanceConfigs[config.key] = getAllData ? config : config.value;
|
||||||
|
});
|
||||||
|
|
||||||
|
return Array.isArray(key) ? instanceConfigs : instanceConfigs[key];
|
||||||
|
}
|
||||||
|
|
||||||
|
return instanceSmtpConfig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue