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
     }