Skip to content

Sharing Roadmap

Nathan Gray edited this page Oct 7, 2020 · 3 revisions

Backend stuff

Our initial backend was a little rough, partially due to how the VFS handles users and mounts. The plan is:

1. Allow Vfs/StreamManager to be mounted with a different user context

Rather than using the global current user, we'll allow specifying a user ID on the mount URL which will be used for all access checks for that mount point.

2. Global / User / Session mounts

Add a more persistent way to store per-account mounts that would supersede or add to the global fstab. These would be stored in common or sqlfs preferences.

3. Anonymous

Normal users start with a default / safe fstab. Anonymous users would start with an empty one, and only things they have access to would be mounted into the root.

4. Sharing

Shares would get modified so that rather than mangling the fstab, we just start from / and mount the shared directory / directories in. Any needed permissions will be created when the share is created, rather than when it is accessed. If more than one share is visited, we'll add them in to the session fstab. File permissions will be handled by the Vfs instead of the UI.

Better UI stuff

UI Dialog

We need a better UI dialog that allows to choose options better than the mess of context menu actions. The dialog should

  • ask who the share is with
  • allow an optional message
  • rw access Everything else should be hidden under 'Advanced...' or similar. Advanced options can contain
  • Extended permissions?
  • hidden uploads
  • re-share
  • expiry & password (via etemplate hook?)
  • merge

Add Share

  • When a share is mounted into the Vfs, it should be mounted to the original file/folder name.
  • User can choose to add the share permanently or for this session only
  • User can change the mount name, but this does not change the original, just the mount.
  • Within the same instance, just add the share into the user's VFS and use [push] notification to notify

Other stuff

  • When shared with an egroupware user, shares should be mounted into /home/<user>/Shares/
  • If a share is re-shared, it should be passing on the original with all its restrictions & security, still under the control of the original sharing user.
Clone this wiki locally