diff --git a/program/serializers.py b/program/serializers.py index f4cd9b2cfba9c16dc16f1eb656fa6e4b57b4c8b4..fb41a215b2079049c82e281a6871c8133a42c2c8 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -988,7 +988,10 @@ class NoteSerializer(serializers.ModelSerializer): user_is_owner = user in show.owners.all() # Having the create_note permission overrides the ownership - if not (user.has_perm("program.create_note") or user_is_owner): + if not ( + user.has_perm("program.create_note") + or (user.has_perm("program.add_note") and user_is_owner) + ): raise exceptions.PermissionDenied(detail="You are not allowed to create this note.") # we derive `contributors`, `language` and `topic` from the Show's values if not set @@ -1023,7 +1026,10 @@ class NoteSerializer(serializers.ModelSerializer): user_is_owner = user in instance.timeslot.schedule.show.owners.all() # Having the update_note permission overrides the ownership - if not (user.has_perm("program.update_note") or user_is_owner): + if not ( + user.has_perm("program.update_note") + or (user.has_perm("program.change_note") and user_is_owner) + ): raise exceptions.PermissionDenied(detail="You are not allowed to update this note.") if "cba_id" in validated_data: