diff --git a/lib/lightning/credentials/credential.ex b/lib/lightning/credentials/credential.ex index 5c33e85b66..c1130ef833 100644 --- a/lib/lightning/credentials/credential.ex +++ b/lib/lightning/credentials/credential.ex @@ -49,6 +49,9 @@ defmodule Lightning.Credentials.Credential do ) |> assoc_constraint(:user) |> assoc_constraint(:oauth_client) + |> validate_format(:name, ~r/^[a-zA-Z0-9_\- ]*$/, + message: "credential name has invalid format" + ) |> validate_oauth() |> validate_transfer_ownership() end diff --git a/test/lightning_web/live/credential_live_test.exs b/test/lightning_web/live/credential_live_test.exs index 5f2e8289df..f409fdb868 100644 --- a/test/lightning_web/live/credential_live_test.exs +++ b/test/lightning_web/live/credential_live_test.exs @@ -299,6 +299,10 @@ defmodule LightningWeb.CredentialLiveTest do |> form("#credential-form-new", credential: %{name: ""}) |> render_change() =~ "can't be blank" + assert index_live + |> form("#credential-form-new", credential: %{name: "MailChimp'24"}) + |> render_change() =~ "credential name has invalid format" + {:ok, _index_live, html} = index_live |> form("#credential-form-new", credential: @create_attrs)