Skip to content
πŸ“πŸ‘©β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Admin-configured folders shared by everyone in a group.
Branch: master
Clone or download
juliushaertl [Security] Bump lodash.template from 4.4.0 to 4.5.0 (#510)
[Security] Bump lodash.template from 4.4.0 to 4.5.0
Latest commit 24a1d02 Jul 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.tx Fix tx config Feb 12, 2018
appinfo version backend changes for 17 Jun 14, 2019
img register folder icon only when the file app is being loaded May 7, 2019
js improve dark theme support May 31, 2019
l10n [tx-robot] updated from transifex Jul 13, 2019
lib Make sure we always trim the first path separator Jul 15, 2019
screenshots add acl documentation to readme May 6, 2019
src fix deleting of permission rules May 16, 2019
templates cosmetics on admin page Mar 12, 2019
tests load phpunit trough composer May 8, 2019
.babelrc mount group folders and wip ui Apr 13, 2017
.drone.yml Fix core branch on CI Jul 12, 2019
.gitignore run syntax check in ci May 8, 2019
.php_cs.dist run php-cs-fixer Aug 15, 2017
.scrutinizer.yml add scrutinizer config Apr 6, 2017
.travis.yml Fix core branch on CI Jul 12, 2019
CHANGELOG.md update changelog for 4.0.0 May 8, 2019
Makefile 4.0.2 May 27, 2019
README.md add acl documentation to readme May 6, 2019
composer.json load phpunit trough composer May 8, 2019
composer.lock load phpunit trough composer May 8, 2019
package-lock.json [Security] Bump lodash.template from 4.4.0 to 4.5.0 Jul 15, 2019
package.json Bump @types/webpack from 4.4.33 to 4.4.35 (#517) Jul 15, 2019
postcss.config.js mount group folders and wip ui Apr 13, 2017
tsconfig.json update dependencies Sep 3, 2018
webpack.dev.config.js bumb dependencies Jun 14, 2019
webpack.prod.config.js bumb dependencies Jun 14, 2019

README.md

Group folders

Admin configured folders shared by everyone in a group.

Configure folders

Folders can be configured from Group folders in the admin settings.

After a folder is created, the admin can give access to the folder to one or more groups and a quota can be assigned for the folder.

edit

Permissions to the content of a group folder can be configured on a per-group basis.

permissions

Folders

Once configured, the folders will show up in the home folder for each user in the configured groups.

folders

Advanced Permissions

Starting with Groupfolders 2.1.0 and Nextcloud 16 you can enable "Advanced Permissions", this allows admins to configure permissions inside groupfolders on a per file and folder basis

advanced permissions

Advanced permissions have to be enabled for each groupfolder separably, after which an administrator can configure permissions for files and folders trough the web interface under the share options (if the administrator has access to the groupfolder) or trough an occ command.

Permissions are configure by setting one or more of "Read", "Write", "Create", "Delete" or "Share" permissions to "allow" or "deny", any permission not set will inherit the permissions from the parent folder. If multiple configured permissions for a single file or folder apply for a single user (such as when a user belongs to multiple groups), the "allow" permission will overwrite any "deny" permission.

Configuring advanced permissions trough occ

Advanced permissions can also be configured trough the occ groupfolders:permissions command.

To use the occ command you'll first need to find the id of the groupfolder you're trying to configure trough occ groupfolders:list.

Before configuring any permissions you'll first have to enable advanced permissions for the folder using occ groupfolders:permissions <folder_id> --enable. Then you can list all configured permissions trough occ groupfolders:permissions <folder_id>.

occ groupfolders:permissions 1
+------------+--------------+-------------+
| Path       | User/Group   | Permissions |
+------------+--------------+-------------+
| folder     | group: admin | +write      |
| folder/sub | user: admin  | +share      |
|            | user: test   | -share      |
+------------+--------------+-------------+

Permissions for files and folders can be set trough occ groupfolders:permissions <folder_id> --group <group> <path> -- <permissions> to set permissions for a group or occ groupfolders:permissions <folder_id> --user <user> <path> -- <permissions> to set permissions for a single user.

<permissions> can be one or more of the following options: -read, +read, -write, +write, -create, +create, -delete, +delete, -share or +share to set the set the respective permission to "deny" or "allow". You can delete a rule by passing clear as the <permissions> field.

To help with configuring nested permission rules, you can check the effective permissions a user has for a path using occ groupfolders:permissions <folder_id> --user <user> <path> --test.

Notes

  • Currently using encryption on group folders is not supported, all files stored within a group folder will be stored unencrypted.
  • A new Group folder currently overwrites user folders with the same name. While this does not cause data loss, the users will see the new (empty!) Group folder and won’t be able to access their old folder. When the Group folder gets removed, the β€˜old’ folder reappears. While we look into forcing group folders to be unique in an upcoming update, we recommend administrators to make sure the names are unique, for example by prefixing them in a certain way like GS_ and instructing users not to name their own top-level folders in a similar way.
  • Currently actions will not be recorded in Activity-Stream
  • Folders will appear as external storage and may need to be addressed per client-basis for download

API

Group folders can be configured externally trough the OCS Api.

For all POST calls the required parameters are listed, for more information about how to use an OCS api see the Nextcloud documentation on the topic

The following OCS calls are supported.

  • GET apps/groupfolders/folders: Returns a list of call configured folders and their settings
  • POST apps/groupfolders/folders: Create a new group folder.
    • mountpoint: The name for the new folder.
  • GET apps/groupfolders/folders/$folderId: Return a specific configured folder and it's settings
  • DELETE apps/groupfolders/folders/$folderId: Delete a group folder.
  • POST apps/groupfolders/folders/$folderId/groups: Give a group access to a folder
    • group: The id of the group to be given access to the folder.
  • DELETE apps/groupfolders/folders/$folderId/groups/$groupId: Remove access from a group to a folder.
  • POST apps/groupfolders/folders/$folderId/groups/$groupId: Set the permissions a group has in a folder
  • POST apps/groupfolders/folders/$folderId/quota: Set the quota for a folder.
    • quota: The new quota for the folder in bytes, user -3 for unlimited.
  • POST apps/groupfolders/folders/$folderId/mountpoint: Change the name of a folder.
    • mountpoint: The new name for the folder.
You can’t perform that action at this time.