fix(portal): Change provider_identifier type to citext (#6901)

Closes #6872
This commit is contained in:
Andrew Dryga
2024-10-01 16:08:42 -06:00
committed by GitHub
parent 0f2326f504
commit 759e944729
2 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
defmodule Domain.Repo.Migrations.ChangeAuthIdentitiesProviderIdentifierToCitext do
use Ecto.Migration
def change do
execute("CREATE EXTENSION IF NOT EXISTS citext")
alter table(:auth_identities) do
modify(:provider_identifier, :citext)
end
end
end

View File

@@ -3069,6 +3069,29 @@ defmodule Domain.AuthTest do
assert token.created_by_remote_ip.address == context.remote_ip
end
test "provider identifier is not case sensitive", %{
account: account,
provider: provider,
user_agent: user_agent,
remote_ip: remote_ip
} do
nonce = "test_nonce_for_firezone"
context = %Auth.Context{type: :browser, user_agent: user_agent, remote_ip: remote_ip}
identity = Fixtures.Auth.create_identity(account: account, provider: provider)
{:ok, identity} = Domain.Auth.Adapters.Email.request_sign_in_token(identity, context)
secret = identity.provider_virtual_state.nonce <> identity.provider_virtual_state.fragment
assert {:ok, _token_identity, _fragment} =
sign_in(
provider,
String.upcase(identity.provider_identifier),
nonce,
secret,
context
)
end
test "allows using identity id", %{
account: account,
provider: provider,