logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 474aba984f2184d4f028c56f687d1a12f69d5c47
parent: e8d10237da47f81bcb3837ac8b5d1b7cc7bf540c
Author: lain <lain@soykaf.club>
Date:   Wed,  5 Aug 2020 09:08:50 +0000

Merge branch 'unique-app-id' into 'develop'

Add unique index for apps.client_id, fixes #2022

Closes #2022

See merge request pleroma/pleroma!2844

Diffstat:

Apriv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs7+++++++
Mtest/web/oauth/app_test.exs11+++++++++++
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 @@ -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 @@ -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