From d1d07e8401627b357168f64ad40131794a705d15 Mon Sep 17 00:00:00 2001
From: Andrew Dryga
Extra ---or--- separator is removed when there are no recently used
accounts:
Emails send after you sign up don't include sign in link right away,
just a link to a form so that you won't loose in in future. Addresses
"Session token is expired/incognito windows" in #2631
I've allowed email token to be used along with magic link when signing
in as @jefferenced requested multiple times:
Closes #2299
---
elixir/README.md | 6 +-
.../domain/lib/domain/auth/adapters/email.ex | 11 +---
elixir/apps/domain/lib/domain/crypto.ex | 2 +-
.../apps/domain/test/domain/actors_test.exs | 4 +-
.../test/domain/auth/adapters/email_test.exs | 10 +--
elixir/apps/domain/test/domain/auth_test.exs | 62 +++++++++----------
.../apps/web/lib/web/controllers/home_html.ex | 2 +-
elixir/apps/web/lib/web/live/sign_in.ex | 6 +-
elixir/apps/web/lib/web/live/sign_in/email.ex | 27 +++-----
elixir/apps/web/lib/web/live/sign_up.ex | 1 -
elixir/apps/web/lib/web/mailer/auth_email.ex | 18 ------
.../mailer/auth_email/sign_in_link.html.heex | 27 ++++----
.../mailer/auth_email/sign_in_link.text.heex | 14 ++---
.../mailer/auth_email/sign_up_link.html.heex | 15 +----
.../mailer/auth_email/sign_up_link.text.heex | 10 +--
.../test/web/acceptance/auth/email_test.exs | 4 +-
.../acceptance/auth/openid_connect_test.exs | 6 +-
.../web/acceptance/auth/userpass_test.exs | 2 +-
.../web/test/web/acceptance/auth_test.exs | 4 +-
.../web/controllers/auth_controller_test.exs | 10 +--
.../service_accounts/new_identity_test.exs | 2 +-
.../live/actors/service_accounts/new_test.exs | 2 +-
.../live/actors/users/new_identity_test.exs | 2 +-
.../test/web/live/actors/users/new_test.exs | 2 +-
.../web/live/settings/account/index_test.exs | 2 +-
.../test/web/live/settings/dns/index_test.exs | 2 +-
.../google_workspace/edit_test.exs | 2 +-
.../google_workspace/new_test.exs | 2 +-
.../google_workspace/show_test.exs | 2 +-
.../identity_providers/index_test.exs | 2 +-
.../settings/identity_providers/new_test.exs | 2 +-
.../openid_connect/edit_test.exs | 2 +-
.../openid_connect/new_test.exs | 2 +-
.../openid_connect/show_test.exs | 2 +-
.../identity_providers/system/show_test.exs | 2 +-
.../web/test/web/live/sign_in/email_test.exs | 2 +-
.../apps/web/test/web/live/sign_in_test.exs | 5 +-
.../apps/web/test/web/live/sign_up_test.exs | 10 +--
elixir/config/config.exs | 2 +
elixir/config/dev.exs | 2 +
elixir/config/runtime.exs | 2 +
41 files changed, 117 insertions(+), 177 deletions(-)
diff --git a/elixir/README.md b/elixir/README.md
index 49655cd2d..8badf4d20 100644
--- a/elixir/README.md
+++ b/elixir/README.md
@@ -62,7 +62,7 @@ Now you can verify that it's working by connecting to a websocket:
- <%= @account.name %> Admin Portal
+
+ Sign into <%= @account.name %>
+
<.flash flash={@flash} kind={:error} />
@@ -97,7 +99,7 @@ defmodule Web.SignIn do
- Here is the magic sign-in link - you requested to sign in to "<%= @account.name %>". - It is valid for 15 minutes. -
- - - If the link didn't work, please copy this link and open it in your browser: <%= @sign_in_url %> - -Please copy the code and paste it into the Firezone application to proceed with signing in to "<%= @account.name %>":
+
<%= @secret %>
It is valid for 15 minutes.
+ ++ or click on the magic sign-in link + if you are on the same device where you are trying to sign in. +
+ ++ + This email is valid for 15 minutes. + +
diff --git a/elixir/apps/web/lib/web/mailer/auth_email/sign_in_link.text.heex b/elixir/apps/web/lib/web/mailer/auth_email/sign_in_link.text.heex index 49768ff0c..dadbe3d76 100644 --- a/elixir/apps/web/lib/web/mailer/auth_email/sign_in_link.text.heex +++ b/elixir/apps/web/lib/web/mailer/auth_email/sign_in_link.text.heex @@ -1,18 +1,16 @@ Dear Firezone user, -<%= if is_nil(@client_platform) do %> -Here is the magic sign-in link you requested to sign in to "<%= @account.name %>": -<%= @sign_in_url %> - -Please copy this link and open it in your browser. It is valid for 15 minutes. -<% else %> Please copy the code and paste it into the Firezone application to proceed with the sign in to "<%= @account.name %>": <%= @secret %> -It is valid for 15 minutes. -<% end %> +or click on the magic sign-in if you are on the same device where you are trying to sign in: + +<%= @sign_in_url %> + +This email is valid for 15 minutes. + If you did not request this action and have received this email in error, you can safely ignore and discard this email. However, if you continue to receive multiple unsolicited emails of this nature, we strongly recommend contacting your system administrator to report the issue. diff --git a/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.html.heex b/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.html.heex index e6d58923f..6197a2eac 100644 --- a/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.html.heex +++ b/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.html.heex @@ -1,19 +1,7 @@
- Here is the sign-in link - to access your account "<%= @account.name %>". - It is valid for 15 minutes. -
- - - If the link didn't work, please copy this link and open it in your browser. <%= @sign_in_url %> - -In future you can always access the sign in form at the following URL:
+You can sign in to your account "<%= @account.name %>" using following link:
<%= @sign_in_form_url %> @@ -28,7 +16,6 @@
Request details:
-
Time: <%= @sign_in_token_created_at %>
IP address: <%= @remote_ip %>
User Agent: <%= @user_agent %>
Account ID: <%= @account.id %>
diff --git a/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.text.heex b/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.text.heex
index 77f73cee0..3d3ecec6a 100644
--- a/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.text.heex
+++ b/elixir/apps/web/lib/web/mailer/auth_email/sign_up_link.text.heex
@@ -1,13 +1,6 @@
Thank you for signing up for Firezone!
-
-Here is the sign-in link to access your account "<%= @account.name %>":
-
-<%= @sign_in_url %>
-
-Please copy this link and open it in your browser. It is valid for 15 minutes.
-
-In future you can always access the sign in form at the following URL:
+You can sign in to your account "<%= @account.name %>" using following link:
<%= @sign_in_form_url %>
@@ -16,7 +9,6 @@ and discard this email. However, if you continue to receive multiple unsolicited
we strongly recommend contacting your system administrator to report the issue.
Request details:
- Time: <%= @sign_in_token_created_at %>
IP address: <%= @remote_ip %>
User Agent: <%= @user_agent %>
Account ID: <%= @account.id %>
diff --git a/elixir/apps/web/test/web/acceptance/auth/email_test.exs b/elixir/apps/web/test/web/acceptance/auth/email_test.exs
index 96d35bbc0..2ab184bff 100644
--- a/elixir/apps/web/test/web/acceptance/auth/email_test.exs
+++ b/elixir/apps/web/test/web/acceptance/auth/email_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Acceptance.SignIn.EmailTest do
use Web.AcceptanceCase, async: true
feature "renders success on invalid email to prevent enumeration attacks", %{session: session} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
Fixtures.Auth.create_email_provider(account: account)
@@ -18,7 +18,7 @@ defmodule Web.Acceptance.SignIn.EmailTest do
end
feature "allows to log in using email link", %{session: session} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
provider = Fixtures.Auth.create_email_provider(account: account)
diff --git a/elixir/apps/web/test/web/acceptance/auth/openid_connect_test.exs b/elixir/apps/web/test/web/acceptance/auth/openid_connect_test.exs
index 75dca922c..87de06f41 100644
--- a/elixir/apps/web/test/web/acceptance/auth/openid_connect_test.exs
+++ b/elixir/apps/web/test/web/acceptance/auth/openid_connect_test.exs
@@ -13,10 +13,10 @@ defmodule Web.Acceptance.Auth.OpenIDConnectTest do
session
|> visit(~p"/#{account}")
- |> assert_el(Query.text("#{account.name} Admin Portal"))
+ |> assert_el(Query.text("Sign into #{account.name}"))
|> click(Query.link("Sign in with Vault"))
|> Vault.userpass_flow(oidc_login, oidc_password)
- |> assert_el(Query.text("#{account.name} Admin Portal"))
+ |> assert_el(Query.text("Sign into #{account.name}"))
|> assert_path(~p"/#{account.id}")
|> assert_el(Query.text("You may not authenticate to this account."))
end
@@ -41,7 +41,7 @@ defmodule Web.Acceptance.Auth.OpenIDConnectTest do
session
|> visit(~p"/#{account}")
- |> assert_el(Query.text("#{account.name} Admin Portal"))
+ |> assert_el(Query.text("Sign into #{account.name}"))
|> click(Query.link("Sign in with Vault"))
|> Vault.userpass_flow(oidc_login, oidc_password)
|> assert_el(Query.css("#user-menu-button"))
diff --git a/elixir/apps/web/test/web/acceptance/auth/userpass_test.exs b/elixir/apps/web/test/web/acceptance/auth/userpass_test.exs
index e02e4f33a..b57de5978 100644
--- a/elixir/apps/web/test/web/acceptance/auth/userpass_test.exs
+++ b/elixir/apps/web/test/web/acceptance/auth/userpass_test.exs
@@ -139,7 +139,7 @@ defmodule Web.Acceptance.Auth.UserPassTest do
defp password_login_flow(session, account, username, password) do
session
|> visit(~p"/#{account}")
- |> assert_el(Query.text("#{account.name} Admin Portal"))
+ |> assert_el(Query.text("Sign into #{account.name}"))
|> assert_el(Query.text("Sign in with username and password"))
|> fill_form(%{
"userpass[provider_identifier]" => username,
diff --git a/elixir/apps/web/test/web/acceptance/auth_test.exs b/elixir/apps/web/test/web/acceptance/auth_test.exs
index 46741e00b..737b06535 100644
--- a/elixir/apps/web/test/web/acceptance/auth_test.exs
+++ b/elixir/apps/web/test/web/acceptance/auth_test.exs
@@ -4,7 +4,7 @@ defmodule Web.Acceptance.AuthTest do
feature "renders all sign in options", %{session: session} do
account = Fixtures.Accounts.create_account()
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
Fixtures.Auth.create_userpass_provider(account: account)
Fixtures.Auth.create_email_provider(account: account)
@@ -15,7 +15,7 @@ defmodule Web.Acceptance.AuthTest do
session
|> visit(~p"/#{account}")
- |> assert_el(Query.text("#{account.name} Admin Portal"))
+ |> assert_el(Query.text("Sign into #{account.name}"))
|> assert_el(Query.link("Sign in with #{openid_connect_provider.name}"))
|> assert_el(Query.text("Sign in with username and password"))
|> assert_el(Query.text("Sign in with a magic link"))
diff --git a/elixir/apps/web/test/web/controllers/auth_controller_test.exs b/elixir/apps/web/test/web/controllers/auth_controller_test.exs
index f149ade99..22c97155e 100644
--- a/elixir/apps/web/test/web/controllers/auth_controller_test.exs
+++ b/elixir/apps/web/test/web/controllers/auth_controller_test.exs
@@ -2,7 +2,7 @@ defmodule Web.AuthControllerTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
%{}
end
@@ -1168,7 +1168,7 @@ defmodule Web.AuthControllerTest do
describe "sign_out/2" do
test "redirects to the sign in page and renews the session", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
provider = Fixtures.Auth.create_email_provider(account: account)
@@ -1207,7 +1207,7 @@ defmodule Web.AuthControllerTest do
end
test "broadcasts to the given live_socket_id", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
provider = Fixtures.Auth.create_email_provider(account: account)
@@ -1227,7 +1227,7 @@ defmodule Web.AuthControllerTest do
end
test "does not remove current account id from list of recent ones", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
provider = Fixtures.Auth.create_email_provider(account: account)
@@ -1286,7 +1286,7 @@ defmodule Web.AuthControllerTest do
end
test "keeps up to 5 recent accounts the used signed in to", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
{conn, account_ids} =
Enum.reduce(1..6, {conn, []}, fn _i, {conn, account_ids} ->
diff --git a/elixir/apps/web/test/web/live/actors/service_accounts/new_identity_test.exs b/elixir/apps/web/test/web/live/actors/service_accounts/new_identity_test.exs
index aa15b36ec..d2dd61e78 100644
--- a/elixir/apps/web/test/web/live/actors/service_accounts/new_identity_test.exs
+++ b/elixir/apps/web/test/web/live/actors/service_accounts/new_identity_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Actors.ServiceAccounts.NewIdentityTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :service_account, account: account)
diff --git a/elixir/apps/web/test/web/live/actors/service_accounts/new_test.exs b/elixir/apps/web/test/web/live/actors/service_accounts/new_test.exs
index 08ba7d285..e59372e43 100644
--- a/elixir/apps/web/test/web/live/actors/service_accounts/new_test.exs
+++ b/elixir/apps/web/test/web/live/actors/service_accounts/new_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Actors.ServiceAccount.NewTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/actors/users/new_identity_test.exs b/elixir/apps/web/test/web/live/actors/users/new_identity_test.exs
index a9fcdb4c2..9a9905957 100644
--- a/elixir/apps/web/test/web/live/actors/users/new_identity_test.exs
+++ b/elixir/apps/web/test/web/live/actors/users/new_identity_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Actors.User.NewIdentityTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/actors/users/new_test.exs b/elixir/apps/web/test/web/live/actors/users/new_test.exs
index c1b1dcb16..cd5ec9ebb 100644
--- a/elixir/apps/web/test/web/live/actors/users/new_test.exs
+++ b/elixir/apps/web/test/web/live/actors/users/new_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Actors.User.NewTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/account/index_test.exs b/elixir/apps/web/test/web/live/settings/account/index_test.exs
index 1d7c228ec..2d007bf3f 100644
--- a/elixir/apps/web/test/web/live/settings/account/index_test.exs
+++ b/elixir/apps/web/test/web/live/settings/account/index_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.Account.IndexTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
identity = Fixtures.Auth.create_identity(account: account, actor: [type: :account_admin_user])
diff --git a/elixir/apps/web/test/web/live/settings/dns/index_test.exs b/elixir/apps/web/test/web/live/settings/dns/index_test.exs
index f490633e4..efe058b42 100644
--- a/elixir/apps/web/test/web/live/settings/dns/index_test.exs
+++ b/elixir/apps/web/test/web/live/settings/dns/index_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.DNS.IndexTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
identity = Fixtures.Auth.create_identity(account: account, actor: [type: :account_admin_user])
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/edit_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/edit_test.exs
index 29b98df85..3b862d85c 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/edit_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/edit_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.GoogleWorkspace.EditTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/new_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/new_test.exs
index 512958649..d54fa8d6d 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/new_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/new_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.GoogleWorkspace.NewTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/show_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/show_test.exs
index 74b41f4dd..d31939a4a 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/show_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/google_workspace/show_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.GoogleWorkspace.ShowTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/index_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/index_test.exs
index 288739f57..412b2a48a 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/index_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/index_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.IndexTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/new_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/new_test.exs
index 5eeb70bf0..240ab3f9c 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/new_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/new_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.NewTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/edit_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/edit_test.exs
index 00eab3a35..43bb494db 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/edit_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/edit_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.OpenIDConnect.EditTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/new_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/new_test.exs
index 4d8b92e74..a8d3d14d0 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/new_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/new_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.OpenIDConnect.NewTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/show_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/show_test.exs
index dd0df3e45..79b0163e2 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/show_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/openid_connect/show_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.OpenIDConnect.ShowTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
actor = Fixtures.Actors.create_actor(type: :account_admin_user, account: account)
diff --git a/elixir/apps/web/test/web/live/settings/identity_providers/system/show_test.exs b/elixir/apps/web/test/web/live/settings/identity_providers/system/show_test.exs
index 488bf5858..d05a1a674 100644
--- a/elixir/apps/web/test/web/live/settings/identity_providers/system/show_test.exs
+++ b/elixir/apps/web/test/web/live/settings/identity_providers/system/show_test.exs
@@ -2,7 +2,7 @@ defmodule Web.Live.Settings.IdentityProviders.System.ShowTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
provider = Fixtures.Auth.create_email_provider(account: account)
diff --git a/elixir/apps/web/test/web/live/sign_in/email_test.exs b/elixir/apps/web/test/web/live/sign_in/email_test.exs
index 35ab3016b..c9e0c0466 100644
--- a/elixir/apps/web/test/web/live/sign_in/email_test.exs
+++ b/elixir/apps/web/test/web/live/sign_in/email_test.exs
@@ -2,7 +2,7 @@ defmodule Web.SignIn.EmailTest do
use Web.ConnCase, async: true
setup do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
provider = Fixtures.Auth.create_email_provider(account: account)
diff --git a/elixir/apps/web/test/web/live/sign_in_test.exs b/elixir/apps/web/test/web/live/sign_in_test.exs
index bcecadc48..be50ce4b2 100644
--- a/elixir/apps/web/test/web/live/sign_in_test.exs
+++ b/elixir/apps/web/test/web/live/sign_in_test.exs
@@ -2,7 +2,7 @@ defmodule Web.SignInTest do
use Web.ConnCase, async: true
test "renders active providers on the page", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
@@ -47,7 +47,7 @@ defmodule Web.SignInTest do
end
test "takes client params from session", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account = Fixtures.Accounts.create_account()
Fixtures.Auth.create_email_provider(account: account)
@@ -60,5 +60,6 @@ defmodule Web.SignInTest do
assert html =~ ~s|value="ios"|
assert html =~ ~s|value="csrf-token"|
+ refute html =~ ~s|Meant to sign in from a client instead?|
end
end
diff --git a/elixir/apps/web/test/web/live/sign_up_test.exs b/elixir/apps/web/test/web/live/sign_up_test.exs
index bfcdfd464..54ab5328d 100644
--- a/elixir/apps/web/test/web/live/sign_up_test.exs
+++ b/elixir/apps/web/test/web/live/sign_up_test.exs
@@ -18,7 +18,7 @@ defmodule Web.Live.SignUpTest do
end
test "creates new account and sends a welcome email", %{conn: conn} do
- Domain.Config.put_system_env_override(:outbound_email_adapter, Swoosh.Adapters.Postmark)
+ Domain.Config.put_env_override(:outbound_email_adapter_configured?, true)
account_name = "FooBar"
@@ -54,14 +54,6 @@ defmodule Web.Live.SignUpTest do
assert_email_sent(fn email ->
assert email.subject == "Welcome to Firezone"
-
- verify_sign_in_token_path =
- ~p"/#{account}/sign_in/providers/#{provider.id}/verify_sign_in_token"
-
- assert email.text_body =~ "#{verify_sign_in_token_path}"
- assert email.text_body =~ "identity_id=#{identity.id}"
- assert email.text_body =~ "secret="
-
assert email.text_body =~ url(~p"/#{account}")
end)
end
diff --git a/elixir/config/config.exs b/elixir/config/config.exs
index f232996d9..93bc5befd 100644
--- a/elixir/config/config.exs
+++ b/elixir/config/config.exs
@@ -79,6 +79,8 @@ config :domain, :enabled_features,
config :domain, docker_registry: "us-east1-docker.pkg.dev/firezone-staging/firezone"
+config :domain, outbound_email_adapter_configured?: false
+
###############################
##### Web #####################
###############################
diff --git a/elixir/config/dev.exs b/elixir/config/dev.exs
index 4c2aae7d8..732b3484d 100644
--- a/elixir/config/dev.exs
+++ b/elixir/config/dev.exs
@@ -11,6 +11,8 @@ config :domain, Domain.Repo,
port: String.to_integer(System.get_env("DATABASE_PORT", "5432")),
password: System.get_env("DATABASE_PASSWORD", "postgres")
+config :domain, outbound_email_adapter_configured?: true
+
###############################
##### Web #####################
###############################
diff --git a/elixir/config/runtime.exs b/elixir/config/runtime.exs
index a3959f16c..7ca45f837 100644
--- a/elixir/config/runtime.exs
+++ b/elixir/config/runtime.exs
@@ -73,6 +73,8 @@ if config_env() == :prod do
config :domain, docker_registry: compile_config!(:docker_registry)
+ config :domain, outbound_email_adapter_configured?: !!compile_config!(:outbound_email_adapter)
+
###############################
##### Web #####################
###############################