[PM-129] Refactor email forwarding providers to remove filtering for self-hosted (#4963)
* Added model for email forwarder options * Refactored code base to use model and filter based on the new model
This commit is contained in:
parent
d74504ec72
commit
1666488672
|
@ -41,16 +41,8 @@ export class GeneratorComponent extends BaseGeneratorComponent {
|
|||
window
|
||||
);
|
||||
if (platformUtilsService.isSelfHost()) {
|
||||
// Cannot use Firefox Relay on self hosted web vaults due to CORS issues with Firefox Relay API
|
||||
this.forwardOptions.splice(
|
||||
this.forwardOptions.findIndex((o) => o.value === "firefoxrelay"),
|
||||
1
|
||||
);
|
||||
// Also cannot use Duck Duck Go on self hosted web vaults due to CORS issues
|
||||
this.forwardOptions.splice(
|
||||
this.forwardOptions.findIndex((o) => o.value === "duckduckgo"),
|
||||
1
|
||||
);
|
||||
// Allow only valid email forwarders for self host
|
||||
this.forwardOptions = this.forwardOptions.filter((forwarder) => forwarder.validForSelfHosted);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
|||
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
||||
import { EmailForwarderOptions } from "@bitwarden/common/models/domain/email-forwarder-options";
|
||||
import { PasswordGeneratorPolicyOptions } from "@bitwarden/common/models/domain/password-generator-policy-options";
|
||||
import { PasswordGenerationServiceAbstraction } from "@bitwarden/common/tools/generator/password";
|
||||
import { UsernameGenerationServiceAbstraction } from "@bitwarden/common/tools/generator/username";
|
||||
|
@ -22,7 +23,7 @@ export class GeneratorComponent implements OnInit {
|
|||
usernameTypeOptions: any[];
|
||||
subaddressOptions: any[];
|
||||
catchallOptions: any[];
|
||||
forwardOptions: any[];
|
||||
forwardOptions: EmailForwarderOptions[];
|
||||
usernameOptions: any = {};
|
||||
passwordOptions: any = {};
|
||||
username = "-";
|
||||
|
@ -236,11 +237,11 @@ export class GeneratorComponent implements OnInit {
|
|||
|
||||
private async initForwardOptions() {
|
||||
this.forwardOptions = [
|
||||
{ name: "AnonAddy", value: "anonaddy" },
|
||||
{ name: "DuckDuckGo", value: "duckduckgo" },
|
||||
{ name: "Fastmail", value: "fastmail" },
|
||||
{ name: "Firefox Relay", value: "firefoxrelay" },
|
||||
{ name: "SimpleLogin", value: "simplelogin" },
|
||||
{ name: "AnonAddy", value: "anonaddy", validForSelfHosted: true },
|
||||
{ name: "DuckDuckGo", value: "duckduckgo", validForSelfHosted: false },
|
||||
{ name: "Fastmail", value: "fastmail", validForSelfHosted: true },
|
||||
{ name: "Firefox Relay", value: "firefoxrelay", validForSelfHosted: false },
|
||||
{ name: "SimpleLogin", value: "simplelogin", validForSelfHosted: true },
|
||||
];
|
||||
|
||||
this.usernameOptions = await this.usernameGenerationService.getOptions();
|
||||
|
@ -248,7 +249,7 @@ export class GeneratorComponent implements OnInit {
|
|||
this.usernameOptions.forwardedService == null ||
|
||||
this.usernameOptions.forwardedService === ""
|
||||
) {
|
||||
this.forwardOptions.push({ name: "", value: null });
|
||||
this.forwardOptions.push({ name: "", value: null, validForSelfHosted: false });
|
||||
}
|
||||
|
||||
this.forwardOptions = this.forwardOptions.sort((a, b) => a.name.localeCompare(b.name));
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
export class EmailForwarderOptions {
|
||||
name: string;
|
||||
value: string;
|
||||
validForSelfHosted: boolean;
|
||||
}
|
Loading…
Reference in New Issue