From f04526b5f7a0adec4fb5bd16fcf9b54d5e4c71ec Mon Sep 17 00:00:00 2001 From: Zuzanna Date: Tue, 18 Nov 2025 13:40:23 +0100 Subject: [PATCH] wip --- src/common/proxy-manager.js | 2 +- src/common/user-object.js | 9 ++++++++- www/common/drive-ui.js | 10 ++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/common/proxy-manager.js b/src/common/proxy-manager.js index 4439db254..97f68c32c 100644 --- a/src/common/proxy-manager.js +++ b/src/common/proxy-manager.js @@ -316,7 +316,7 @@ const factory = (UserObject, Util, Hash, var userObjects = _getUserObjects(Env); var data = {}; userObjects.some(function (uo) { - data = uo.getFileData(id, editable); + data = uo.getFileData(id, editable, Env.edPublic); if (data && Object.keys(data).length) { return true; } }); return data; diff --git a/src/common/user-object.js b/src/common/user-object.js index 5a6ec3c73..7921917d9 100644 --- a/src/common/user-object.js +++ b/src/common/user-object.js @@ -318,7 +318,7 @@ const factory = (Util, Hash, }; // Get data from AllFiles (Cryptpad_RECENTPADS) - var getFileData = exp.getFileData = function (file, editable) { + var getFileData = exp.getFileData = function (file, editable, edPub) { if (!file) { return; } var link; try { @@ -338,6 +338,13 @@ const factory = (Util, Hash, console.error(err); data = {}; } + if (data.owners) { + + var owner = data?.owners.includes(edPub) + editable = owner ? true : editable + + } + console.trace("data check2", data) if (!editable) { data = JSON.parse(JSON.stringify(data)); if (data.href && data.href.indexOf('#') === -1) { diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 752f910b2..f3005774d 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -1253,8 +1253,9 @@ define([ // falsy (open in preview if default is not using the app) var defaultInApp = ['application/pdf']; var openFile = function (el, isRo, app) { + console.log("data check", edPublic) // In anonymous drives, `el` already contains file data - var data = el.channel ? el : manager.getFileData(el); + var data = manager.getFileData(el, !isRo, edPublic); if (data.static) { if (data.href) { @@ -1263,7 +1264,7 @@ define([ } return; } - + console.log("data!", data) if (!data || (!data.href && !data.roHref)) { return void logError("Missing data for the file", el, data); } @@ -2275,7 +2276,7 @@ define([ }) } var hrefData = Hash.parsePadUrl(href); - console.log(hrefData) + console.log("data add", data) if (hrefData.type) { $element.addClass('cp-border-color-'+hrefData.type); @@ -3827,10 +3828,11 @@ define([ if (isElementSelected($element)) { selectElement($element); } + addFileData(id, $element); + $element.prepend($icon).dblclick(function () { openFile(id); }); - addFileData(id, $element); $element.click(function(e) { e.stopPropagation(); onElementClick(e, $element);