aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-01-31 18:50:00 +0000
committerkaniini <nenolod@gmail.com>2019-01-31 18:50:00 +0000
commite914eeb632b2f51ee692ba8a94394452e10bcbe4 (patch)
tree8ab7ad1b37b5972dd411811257d7a832d5042ecc /lib
parent44913c101951a9fe423ee1f2e739204b97ba8d45 (diff)
parent308b35ebe2f2062b87a5d7703df8ab5b1210d9c8 (diff)
downloadpleroma-e914eeb632b2f51ee692ba8a94394452e10bcbe4.tar.gz
Merge branch 'user-follow-all-unique' into 'develop'
User.follow_all: ensure the following array stays unique See merge request pleroma/pleroma!750
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 60d1d4811..33630ac7c 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -315,7 +315,16 @@ defmodule Pleroma.User do
q =
from(u in User,
where: u.id == ^follower.id,
- update: [set: [following: fragment("array_cat(?, ?)", u.following, ^followed_addresses)]]
+ update: [
+ set: [
+ following:
+ fragment(
+ "array(select distinct unnest (array_cat(?, ?)))",
+ u.following,
+ ^followed_addresses
+ )
+ ]
+ ]
)
{1, [follower]} = Repo.update_all(q, [], returning: true)