diff --git a/recipes/views.py b/recipes/views.py index 2ac5765..032dd20 100644 --- a/recipes/views.py +++ b/recipes/views.py @@ -72,6 +72,16 @@ def add_recipe(request): def edit_recipe(request, slug): recipe = get_object_or_404(Recipe, slug=slug) + # It is assumed every recipe has at least one version + if not request.user.is_superuser: + users = set() + + for version in recipe.versions.all(): # type: ignore + users.add(version.user) + + if len(users) > 1 or (len(users) == 1 and next(iter(users)) != request.user): + return redirect(f"/accounts/login/?next={request.path}") + if request.method == 'POST': form = RecipeForm(request.POST, instance=recipe, prefix=RECIPE_FORM_PREFIX) if form.is_valid():