diff --git a/server-ce/hotfix/3.5.8/Dockerfile b/server-ce/hotfix/3.5.8/Dockerfile new file mode 100644 index 0000000000..ea7b7f780f --- /dev/null +++ b/server-ce/hotfix/3.5.8/Dockerfile @@ -0,0 +1,5 @@ +FROM sharelatex/sharelatex:3.5.7 + +# Patch: fixes anonymous edits breaking history +COPY pr_13574.patch . +RUN patch -p0 < pr_13574.patch diff --git a/server-ce/hotfix/3.5.8/pr_13574.patch b/server-ce/hotfix/3.5.8/pr_13574.patch new file mode 100644 index 0000000000..6d507151a6 --- /dev/null +++ b/server-ce/hotfix/3.5.8/pr_13574.patch @@ -0,0 +1,22 @@ +--- services/project-history/app/js/UpdateTranslator.js ++++ services/project-history/app/js/UpdateTranslator.js +@@ -73,9 +73,18 @@ function _convertToChange(projectId, updateWithBlob) { + throw error + } + ++ let v2Authors ++ if (update.meta.user_id === 'anonymous-user') { ++ // history-v1 uses null to represent an anonymous author ++ v2Authors = [null] ++ } else { ++ // user_id is missing on resync operations that update the contents of a doc ++ v2Authors = _.compact([update.meta.user_id]) ++ } ++ + const rawChange = { + operations, +- v2Authors: _.compact([update.meta.user_id]), ++ v2Authors, + timestamp: new Date(update.meta.ts).toISOString(), + projectVersion, + v2DocVersions: Object.keys(v2DocVersions).length ? v2DocVersions : null, diff --git a/server-ce/hotfix/4.0.3/Dockerfile b/server-ce/hotfix/4.0.3/Dockerfile new file mode 100644 index 0000000000..02199b75c3 --- /dev/null +++ b/server-ce/hotfix/4.0.3/Dockerfile @@ -0,0 +1,7 @@ +# 4.0.1 was tagged as 4.0.2 in dockerhub to keep parity with Server Pro +FROM sharelatex/sharelatex:4.0.1 + + +# Patch: fixes anonymous edits breaking history +COPY pr_13574.patch . +RUN patch -p0 < pr_13574.patch diff --git a/server-ce/hotfix/4.0.3/pr_13574.patch b/server-ce/hotfix/4.0.3/pr_13574.patch new file mode 100644 index 0000000000..6d507151a6 --- /dev/null +++ b/server-ce/hotfix/4.0.3/pr_13574.patch @@ -0,0 +1,22 @@ +--- services/project-history/app/js/UpdateTranslator.js ++++ services/project-history/app/js/UpdateTranslator.js +@@ -73,9 +73,18 @@ function _convertToChange(projectId, updateWithBlob) { + throw error + } + ++ let v2Authors ++ if (update.meta.user_id === 'anonymous-user') { ++ // history-v1 uses null to represent an anonymous author ++ v2Authors = [null] ++ } else { ++ // user_id is missing on resync operations that update the contents of a doc ++ v2Authors = _.compact([update.meta.user_id]) ++ } ++ + const rawChange = { + operations, +- v2Authors: _.compact([update.meta.user_id]), ++ v2Authors, + timestamp: new Date(update.meta.ts).toISOString(), + projectVersion, + v2DocVersions: Object.keys(v2DocVersions).length ? v2DocVersions : null,