diff options
author | kaniini <nenolod@gmail.com> | 2019-01-31 18:50:00 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-01-31 18:50:00 +0000 |
commit | e914eeb632b2f51ee692ba8a94394452e10bcbe4 (patch) | |
tree | 8ab7ad1b37b5972dd411811257d7a832d5042ecc /lib | |
parent | 44913c101951a9fe423ee1f2e739204b97ba8d45 (diff) | |
parent | 308b35ebe2f2062b87a5d7703df8ab5b1210d9c8 (diff) | |
download | pleroma-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.ex | 11 |
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) |