From 8067b26dc609f5a6a211d1b3aaed1d975c8784ba Mon Sep 17 00:00:00 2001 From: Daniel James Smith <2670567+djsmith85@users.noreply.github.com> Date: Mon, 23 Oct 2023 13:48:15 +0200 Subject: [PATCH] [PM-3554] Add support for alias creation via self-hosted SimpleLogin (#6077) * Add support for alias creation via self-hosted SimpleLogin * Add forwardedSimpleLoginBaseUrl to username-gen-options type * Only show Server Url on web if on selfhosted bitwarden --------- Co-authored-by: Daniel James Smith --- .../tools/popup/generator/generator.component.html | 10 ++++++++++ apps/desktop/src/app/tools/generator.component.html | 10 ++++++++++ apps/web/src/app/tools/generator.component.html | 11 +++++++++++ .../username/email-forwarders/forwarder-options.ts | 5 +++++ .../email-forwarders/simple-login-forwarder.ts | 2 +- .../generator/username/username-generation-options.ts | 1 + .../generator/username/username-generation.service.ts | 2 ++ 7 files changed, 40 insertions(+), 1 deletion(-) diff --git a/apps/browser/src/tools/popup/generator/generator.component.html b/apps/browser/src/tools/popup/generator/generator.component.html index cf7a2949f24..a236c765577 100644 --- a/apps/browser/src/tools/popup/generator/generator.component.html +++ b/apps/browser/src/tools/popup/generator/generator.component.html @@ -353,6 +353,16 @@ (blur)="saveUsernameOptions()" /> +
+ + +
diff --git a/apps/desktop/src/app/tools/generator.component.html b/apps/desktop/src/app/tools/generator.component.html index 1b2ee9df42e..0c66ebde805 100644 --- a/apps/desktop/src/app/tools/generator.component.html +++ b/apps/desktop/src/app/tools/generator.component.html @@ -380,6 +380,16 @@ (blur)="saveUsernameOptions()" />
+
+ + +
diff --git a/apps/web/src/app/tools/generator.component.html b/apps/web/src/app/tools/generator.component.html index c690a458dab..2e6d6d0effd 100644 --- a/apps/web/src/app/tools/generator.component.html +++ b/apps/web/src/app/tools/generator.component.html @@ -283,6 +283,17 @@ (blur)="saveUsernameOptions()" />
+
+ + +
diff --git a/libs/common/src/tools/generator/username/email-forwarders/forwarder-options.ts b/libs/common/src/tools/generator/username/email-forwarders/forwarder-options.ts index cca6dd34dd1..00d1717bf60 100644 --- a/libs/common/src/tools/generator/username/email-forwarders/forwarder-options.ts +++ b/libs/common/src/tools/generator/username/email-forwarders/forwarder-options.ts @@ -4,6 +4,7 @@ export class ForwarderOptions { fastmail = new FastmailForwarderOptions(); anonaddy = new AnonAddyForwarderOptions(); forwardemail = new ForwardEmailForwarderOptions(); + simplelogin = new SimpleLoginForwarderOptions(); } export class FastmailForwarderOptions { @@ -18,3 +19,7 @@ export class AnonAddyForwarderOptions { export class ForwardEmailForwarderOptions { domain: string; } + +export class SimpleLoginForwarderOptions { + baseUrl: string; +} diff --git a/libs/common/src/tools/generator/username/email-forwarders/simple-login-forwarder.ts b/libs/common/src/tools/generator/username/email-forwarders/simple-login-forwarder.ts index 7ecd72dc59c..4d5b7749d49 100644 --- a/libs/common/src/tools/generator/username/email-forwarders/simple-login-forwarder.ts +++ b/libs/common/src/tools/generator/username/email-forwarders/simple-login-forwarder.ts @@ -17,7 +17,7 @@ export class SimpleLoginForwarder implements Forwarder { "Content-Type": "application/json", }), }; - let url = "https://app.simplelogin.io/api/alias/random/new"; + let url = options.simplelogin.baseUrl + "/api/alias/random/new"; if (options.website != null) { url += "?hostname=" + options.website; } diff --git a/libs/common/src/tools/generator/username/username-generation-options.ts b/libs/common/src/tools/generator/username/username-generation-options.ts index 970f7e945e3..276668de96a 100644 --- a/libs/common/src/tools/generator/username/username-generation-options.ts +++ b/libs/common/src/tools/generator/username/username-generation-options.ts @@ -17,4 +17,5 @@ export type UsernameGeneratorOptions = { forwardedForwardEmailApiToken?: string; forwardedForwardEmailDomain?: string; forwardedSimpleLoginApiKey?: string; + forwardedSimpleLoginBaseUrl?: string; }; diff --git a/libs/common/src/tools/generator/username/username-generation.service.ts b/libs/common/src/tools/generator/username/username-generation.service.ts index 35a3a73da90..e28ffb12221 100644 --- a/libs/common/src/tools/generator/username/username-generation.service.ts +++ b/libs/common/src/tools/generator/username/username-generation.service.ts @@ -26,6 +26,7 @@ const DefaultOptions: UsernameGeneratorOptions = { forwardedAnonAddyDomain: "anonaddy.me", forwardedAnonAddyBaseUrl: "https://app.addy.io", forwardedForwardEmailDomain: "hideaddress.net", + forwardedSimpleLoginBaseUrl: "https://app.simplelogin.io", }; export class UsernameGenerationService implements UsernameGenerationServiceAbstraction { @@ -128,6 +129,7 @@ export class UsernameGenerationService implements UsernameGenerationServiceAbstr if (o.forwardedService === "simplelogin") { forwarder = new SimpleLoginForwarder(); forwarderOptions.apiKey = o.forwardedSimpleLoginApiKey; + forwarderOptions.simplelogin.baseUrl = o.forwardedSimpleLoginBaseUrl; } else if (o.forwardedService === "anonaddy") { forwarder = new AnonAddyForwarder(); forwarderOptions.apiKey = o.forwardedAnonAddyApiToken;