fix: Two restore options when an archived document is deleted (#2194)
* Merge two menu items * Add deletedAt guard condition in document unarchive policy * Make the parentDocumentId null * Update test
This commit is contained in:
parent
f58032d305
commit
d71f0ae6bd
@ -218,12 +218,7 @@ function DocumentMenu({
|
||||
items={[
|
||||
{
|
||||
title: t("Restore"),
|
||||
visible: !!can.unarchive,
|
||||
onClick: handleRestore,
|
||||
},
|
||||
{
|
||||
title: t("Restore"),
|
||||
visible: !!(collection && can.restore),
|
||||
visible: (!!collection && can.restore) || can.unarchive,
|
||||
onClick: handleRestore,
|
||||
},
|
||||
{
|
||||
|
@ -1588,7 +1588,7 @@ describe("#documents.restore", () => {
|
||||
const body = await res.json();
|
||||
|
||||
expect(res.status).toEqual(200);
|
||||
expect(body.data.parentDocumentId).toEqual(undefined);
|
||||
expect(body.data.parentDocumentId).toEqual(null);
|
||||
expect(body.data.archivedAt).toEqual(null);
|
||||
});
|
||||
|
||||
|
@ -637,7 +637,7 @@ Document.prototype.unarchive = async function (userId: string) {
|
||||
},
|
||||
},
|
||||
});
|
||||
if (!parent) this.parentDocumentId = undefined;
|
||||
if (!parent) this.parentDocumentId = null;
|
||||
}
|
||||
|
||||
if (!this.template) {
|
||||
|
@ -149,6 +149,7 @@ allow(User, "unarchive", Document, (user, document) => {
|
||||
if (cannot(user, "update", document.collection)) return false;
|
||||
|
||||
if (!document.archivedAt) return false;
|
||||
if (document.deletedAt) return false;
|
||||
|
||||
return user.teamId === document.teamId;
|
||||
});
|
||||
|
Reference in New Issue
Block a user