Browse Source

Merge branch 'feature/unsubscribe-on-unfollow' into 'develop'

Unfollow should also unsubscribe

Closes #1086

See merge request pleroma/pleroma!1419
tags/v1.1.4
kaniini 5 years ago
parent
commit
4b78622bba
3 changed files with 17 additions and 1 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +2
    -1
      lib/pleroma/web/common_api/common_api.ex
  3. +14
    -0
      test/web/common_api/common_api_test.exs

+ 1
- 0
CHANGELOG.md View File

@@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Configuration: Filter.AnonymizeFilename added ability to retain file extension with custom text
- Federation: Return 403 errors when trying to request pages from a user's follower/following collections if they have `hide_followers`/`hide_follows` set
- NodeInfo: Return `skipThreadContainment` in `metadata` for the `skip_thread_containment` option
- Mastodon API: Unsubscribe followers when they unfollow a user

### Fixed
- Not being able to pin unlisted posts


+ 2
- 1
lib/pleroma/web/common_api/common_api.ex View File

@@ -31,7 +31,8 @@ defmodule Pleroma.Web.CommonAPI do

def unfollow(follower, unfollowed) do
with {:ok, follower, _follow_activity} <- User.unfollow(follower, unfollowed),
{:ok, _activity} <- ActivityPub.unfollow(follower, unfollowed) do
{:ok, _activity} <- ActivityPub.unfollow(follower, unfollowed),
{:ok, _unfollowed} <- User.unsubscribe(follower, unfollowed) do
{:ok, follower}
end
end


+ 14
- 0
test/web/common_api/common_api_test.exs View File

@@ -346,6 +346,20 @@ defmodule Pleroma.Web.CommonAPITest do
end
end

describe "unfollow/2" do
test "also unsubscribes a user" do
[follower, followed] = insert_pair(:user)
{:ok, follower, followed, _} = CommonAPI.follow(follower, followed)
{:ok, followed} = User.subscribe(follower, followed)

assert User.subscribed_to?(follower, followed)

{:ok, follower} = CommonAPI.unfollow(follower, followed)

refute User.subscribed_to?(follower, followed)
end
end

describe "accept_follow_request/2" do
test "after acceptance, it sets all existing pending follow request states to 'accept'" do
user = insert(:user, info: %{locked: true})


Loading…
Cancel
Save