threefoldtech / web3gw

Proxy for the web3 world
Apache License 2.0
1 stars 1 forks source link

SFTPGO: Allow collaboration on documents/ability to edit shared files #178

Closed mohamedamer453 closed 11 months ago

mohamedamer453 commented 1 year ago

Description

In SFTPGO there are options to share a document and add read/write permissions, however these options only affect download/upload for the directory and it doesn't allow editing.

image

image

a use case for this is collaborating on a document using OnlyOffice, from the UI there's a collaboration tab and settings

image

However i couldn't find a way to share this document so multiple users can view/edit it at the same time.

alichaddad commented 1 year ago

SFTPGO doesn't support sharing files for editing. What is explained above are the only use cases that SFTPGO supports natively. Implementing sharing for writing file would require extensive changes to the code base, with changes to the authentication flow since there is no sharing between users and additional sharing metadata to be stored.

There is a way to achieve live editing by creating a virtual folder. This operation is exclusive to the admin and it allows creating a folder and then assigning it to multiple users, in a way achieving sharing and making live editing of an Only office file possible.

AbdelrahmanElawady commented 1 year ago

After looking around the system and considering @alichaddad comments there is an approach with features mostly implemented in SFTPGO.

The current behavior allows for live editing as mentioned using Virtual Folders. However, only the Admin can create these folders and manage adding them to different users. The current sharing options does not offer anymore than just downloading the files.

We can extend Virtual Folders with ACLs to ensure a seamless process for sharing files or directories to different users as follows:

The issue that remains is how exactly to design an endpoint that take request from unprivileged user to perform privileged operations. There are few options:

Using the suitable approach for the new endpoint will offer a way to share any content using Virtual Folders and ACLs.

There are still some cases that may or may not be needed but still worth discussing, for each case here an endpoint with the proper validation that the user requesting is the owner will be created too:

Pros of using this approach:

Cons of using this approach:

despiegk commented 1 year ago

ps

muhamadazmy commented 1 year ago

However i couldn't find a way to share this document so multiple users can view/edit it at the same time

is this even possible over sftp protocol? sftp as far as i know (and correct me if i am wrong) can upload/download full objects so multiple users won't be able to edit the same file at the same time or they will be stepping on each others toes!

Unless this is supported by sftpgo it won't work out of the box.

rawdaGastan commented 1 year ago

We drafted a pr that includes:

1- Support for live collaboration on files 2- A link is added to edit the shared files 3- If a shared directory has some files that could be edited , edit icons is displayed for them

Screencast from 24 أغس, 2023 EEST 04:45:30 م.webm

Screenshot from 2023-08-23 16-04-52

despiegk commented 1 year ago

wow, cant wait to try