improved and added tests for share link creation

This commit is contained in:
vabene1111
2022-10-31 14:24:41 +01:00
parent aec396e214
commit 3371102e64
2 changed files with 24 additions and 7 deletions

View File

@ -0,0 +1,14 @@
from django.urls import reverse
from django_scopes import scopes_disabled
def test_get_share_link(recipe_1_s1, u1_s1, u1_s2, g1_s1, a_u, space_1):
assert u1_s1.get(reverse('api_share_link', args=[recipe_1_s1.pk])).status_code == 200
assert u1_s2.get(reverse('api_share_link', args=[recipe_1_s1.pk])).status_code == 404
assert g1_s1.get(reverse('api_share_link', args=[recipe_1_s1.pk])).status_code == 403
assert a_u.get(reverse('api_share_link', args=[recipe_1_s1.pk])).status_code == 403
with scopes_disabled():
space_1.allow_sharing = False
space_1.save()
assert u1_s1.get(reverse('api_share_link', args=[recipe_1_s1.pk])).status_code == 403

View File

@ -1382,6 +1382,7 @@ def sync_all(request):
def share_link(request, pk):
if request.user.is_authenticated:
if request.space.allow_sharing and has_group_permission(request.user, ('user',)):
recipe = get_object_or_404(Recipe, pk=pk, space=request.space)
link = ShareLink.objects.create(recipe=recipe, created_by=request.user, space=request.space)
@ -1390,6 +1391,8 @@ def share_link(request, pk):
else:
return JsonResponse({'error': 'sharing_disabled'}, status=403)
return JsonResponse({'error': 'not_authenticated'}, status=403)
@group_required('user')
@ajax_request