Ensure follower is approved to access library
This commit is contained in:
parent
899ba31162
commit
c17f7eefde
|
@ -16,4 +16,5 @@ class LibraryFollower(BasePermission):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
library = actors.SYSTEM_ACTORS['library'].get_actor_instance()
|
library = actors.SYSTEM_ACTORS['library'].get_actor_instance()
|
||||||
return library.followers.filter(url=actor.url).exists()
|
return library.received_follows.filter(
|
||||||
|
approved=True, actor=actor).exists()
|
||||||
|
|
|
@ -30,11 +30,26 @@ def test_library_follower_actor_non_follower(
|
||||||
assert check is False
|
assert check is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_library_follower_actor_follower_not_approved(
|
||||||
|
factories, api_request, anonymous_user, settings):
|
||||||
|
settings.FEDERATION_MUSIC_NEEDS_APPROVAL = True
|
||||||
|
library = actors.SYSTEM_ACTORS['library'].get_actor_instance()
|
||||||
|
follow = factories['federation.Follow'](target=library, approved=False)
|
||||||
|
view = APIView.as_view()
|
||||||
|
permission = permissions.LibraryFollower()
|
||||||
|
request = api_request.get('/')
|
||||||
|
setattr(request, 'user', anonymous_user)
|
||||||
|
setattr(request, 'actor', follow.actor)
|
||||||
|
check = permission.has_permission(request, view)
|
||||||
|
|
||||||
|
assert check is False
|
||||||
|
|
||||||
|
|
||||||
def test_library_follower_actor_follower(
|
def test_library_follower_actor_follower(
|
||||||
factories, api_request, anonymous_user, settings):
|
factories, api_request, anonymous_user, settings):
|
||||||
settings.FEDERATION_MUSIC_NEEDS_APPROVAL = True
|
settings.FEDERATION_MUSIC_NEEDS_APPROVAL = True
|
||||||
library = actors.SYSTEM_ACTORS['library'].get_actor_instance()
|
library = actors.SYSTEM_ACTORS['library'].get_actor_instance()
|
||||||
follow = factories['federation.Follow'](target=library)
|
follow = factories['federation.Follow'](target=library, approved=True)
|
||||||
view = APIView.as_view()
|
view = APIView.as_view()
|
||||||
permission = permissions.LibraryFollower()
|
permission = permissions.LibraryFollower()
|
||||||
request = api_request.get('/')
|
request = api_request.get('/')
|
||||||
|
|
Loading…
Reference in New Issue