diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-08-03 22:32:51 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-08-04 13:31:40 -0500 |
commit | 184742af5eed2c48ba8518f1e114cbe0655ad467 (patch) | |
tree | 762cf4bc73399224b3f2258dd83c14224c3e7d4b | |
parent | e3953923aca1706ab508bfda1ab892304b29c09a (diff) | |
download | pleroma-184742af5eed2c48ba8518f1e114cbe0655ad467.tar.gz |
Unique apps.client_id for new installations, fixes #2022
-rw-r--r-- | priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs | 7 | ||||
-rw-r--r-- | test/web/oauth/app_test.exs | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs b/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs new file mode 100644 index 000000000..83de18096 --- /dev/null +++ b/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddUniqueIndexToAppClientId do + use Ecto.Migration + + def change do + create(unique_index(:apps, [:client_id])) + end +end diff --git a/test/web/oauth/app_test.exs b/test/web/oauth/app_test.exs index 899af648e..993a490e0 100644 --- a/test/web/oauth/app_test.exs +++ b/test/web/oauth/app_test.exs @@ -29,5 +29,16 @@ defmodule Pleroma.Web.OAuth.AppTest do assert exist_app.id == app.id assert exist_app.scopes == ["read", "write", "follow", "push"] end + + test "has unique client_id" do + insert(:oauth_app, client_name: "", redirect_uris: "", client_id: "boop") + + error = + catch_error(insert(:oauth_app, client_name: "", redirect_uris: "", client_id: "boop")) + + assert %Ecto.ConstraintError{} = error + assert error.constraint == "apps_client_id_index" + assert error.type == :unique + end end end |