From 6556a87629120d74b67c7aa70ed691c5c67ce26b Mon Sep 17 00:00:00 2001 From: Sam <sam.saffron@gmail.com> Date: Thu, 15 Nov 2018 13:14:07 +1100 Subject: [PATCH] FIX: only check for conflict on edit drafts In some unknown cases non edit drafts are being checked for conflict --- app/controllers/draft_controller.rb | 4 +++- spec/requests/draft_controller_spec.rb | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/draft_controller.rb b/app/controllers/draft_controller.rb index 34b55c7ad82..cd5a7ef09e0 100644 --- a/app/controllers/draft_controller.rb +++ b/app/controllers/draft_controller.rb @@ -12,7 +12,9 @@ class DraftController < ApplicationController Draft.set(current_user, params[:draft_key], params[:sequence].to_i, params[:data]) if data = JSON::parse(params[:data]) - if data["postId"].present? && data["originalText"].present? + # this is a bit of a kludge we need to remove (all the parsing) too many special cases here + # we need to catch action edit and action editSharedDraft + if data["postId"].present? && data["originalText"].present? && data["action"].to_s.start_with?("edit") post = Post.find_by(id: data["postId"]) if post && post.raw != data["originalText"] conflict_user = BasicUserSerializer.new(post.last_editor, root: false) diff --git a/spec/requests/draft_controller_spec.rb b/spec/requests/draft_controller_spec.rb index b00e7be0383..633f57cbda7 100644 --- a/spec/requests/draft_controller_spec.rb +++ b/spec/requests/draft_controller_spec.rb @@ -29,7 +29,8 @@ describe DraftController do sequence: 0, data: { postId: post.id, - originalText: post.raw + originalText: post.raw, + action: "edit" }.to_json } @@ -41,7 +42,8 @@ describe DraftController do sequence: 0, data: { postId: post.id, - originalText: "something else" + originalText: "something else", + action: "edit" }.to_json }