Group Folders and Nextcloud 15

Humble beginnings

About a year and a half ago, after hearing some people voice complaints about the less than optimal setup for having administrator defined folders shared within an organization, I set out to write an app to simply the setup for the administrators and make things more clear for the user.

How hard could it be, simply create some folders outside of the user’s home directories, re-use some existing logic for restricting access and mount it in the configured location for members of a group. Add a simple UI on top to configure the whole lot and everybody should be happy right?

the first version of the groupfolder admin ui

The admin interface for the first versions of groupfolders.

Naturally, things are never that easy in life, besides the never ending list of additional feature requests (quota, per group permissions, etc) there were some major limitation with group folders resulting from the way their were implemented, files in a group folder are not “owned” by any user. This quirk of group folders conflicted with the assumptions made by the versions and trashbin support in Nextcloud, both of which try to store their data with the user that owns the files, since no user was the owner of any of the files, no versions were created and deleted files did not make it into the trashbin.

With the groupfolders app being mainly a personal side project and the life of a software developer meaing a constant lacking time to work on personal projects, it’s continued development was restricted to working on smaller bugs feature requests. Proper support for versions and trashbin required significant changes in the way versions and trashbin is handled in Nextcloud and was thus out of scope for the time being.

A first class citizen

During the planning for Nextcloud 15, it was decided to try and make groupfolders a more first-class citizen as there was an increasing interest in it by admins who saw it as a way to re-create their old network drive based sharing setup. The first step of this was making sure versions and trashbin worked “as expected”.

The handling of versions and trash was modularized, allowing apps like groupfolders to provide customer handling of them to better fit their specific needs, allowing the groupfolders app to store it’s trashbin and versions with the group folders. Thus ensuring that if one user deletes a file from a groupfolder, it will show up in the trashbin of every user with access to the group folder, and any of those users can decide to restore the file, and the same goes for versions.

versions for a file stored in a group folder

Versions for a file stored in a group folder.

Because of the changes to the core server that were described above, this will only work in combination with the upcomming Nextcloud 15 release.

Testing for a bright future

No matter how much I would like it to be otherwise, code is rarely perfect on a first try. So grab the latest Nextcloud 15 release candidate and the groupfolders 2.0 beta and test to your hearts content (Usual warning when using pre-release software apply).

Besides the headline features of trashbin and versions, the following features were added.

  • occ commands for configuring groupfolders (see occ groupfolders for a lists of available commands).
  • Separate delete permissions instead of bundling them with write permissions.
  • Sorting capabilities in the admin web interface.

Any issues that you find can be reported to the usual place.