commit cdaf73b3d07cc40ccb3207e99b10541c29916680
parent 640846961accbd3a84db4e3bc67de8778889ce19
Author: Dan Stillman <dstillman@zotero.org>
Date: Sat, 2 Dec 2017 01:35:23 -0500
Fix sync error after resetting read-only group
If an item needed to be erased, it would fail with "Cannot edit item in
read-only library", because the deletion didn't skip the edit check.
Diffstat:
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/chrome/content/zotero/xpcom/sync/syncLocal.js b/chrome/content/zotero/xpcom/sync/syncLocal.js
@@ -277,7 +277,13 @@ Zotero.Sync.Data.Local = {
}
}
if (toDelete.length) {
- yield objectsClass.erase(toDelete, { skipDeleteLog: true });
+ yield objectsClass.erase(
+ toDelete,
+ {
+ skipEditCheck: true,
+ skipDeleteLog: true
+ }
+ );
}
// Deleted objects
diff --git a/test/tests/syncLocalTest.js b/test/tests/syncLocalTest.js
@@ -281,6 +281,10 @@ describe("Zotero.Sync.Data.Local", function() {
var deletedItemKey = deletedItem.key;
yield deletedItem.eraseTx();
+ // Make group read-only
+ group.editable = false;
+ yield group.saveTx();
+
yield Zotero.Sync.Data.Local.resetUnsyncedLibraryData(libraryID);
assert.isNull(Zotero.SyncedSettings.get(group.libraryID, "testSetting"));