diff --git a/README.md b/README.md index 702ac62..1b0f2a0 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # Group folders -Admin configured folders shared by everyone in a group. +Admin configured folders accessible 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. +After a folder is created, the admin can give access to the folder to one or more groups, a quota can be assigned for the folder and advanced permissions can be activated and configured. ![edit](screenshots/edit.png) @@ -23,17 +23,17 @@ Once configured, the folders will show up in the home folder for each user in th ## 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_ allows entitled users to configure permissions inside groupfolders on a per file and folder basis. + +Permissions are configured by setting one or more of "Read", "Write", "Create", "Delete" or "Share" permissions to "allow" or "deny". Any permission not explicitly 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. ![advanced permissions](screenshots/acl.png) -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. +Users or whole groups can be entitled to set advanced permissions for each group folder separately on the group folders admin page. +For entitlements, only users from those groups are selectable which have to be configured selected in the Groups column. + +![advanced permission entitlement](screenshots/aclAdmin.png) -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 @@ -66,10 +66,8 @@ To help with configuring nested permission rules, you can check the effective pe ## 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 +* Currently using encryption on group folders is not supported. All files stored within a group folder will be stored unencrypted. +* In Client applications, group folders will appear as external storage and may need to be explicitly addressed for download. ## API @@ -80,16 +78,16 @@ For all `POST` calls the required parameters are listed, for more information ab 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. +- `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. +- `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. + - `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 - `permissions` The new permissions for the group as bitmask of [permissions constants](https://github.com/nextcloud/server/blob/b4f36d44c43aac0efdc6c70ff8e46473341a9bfe/lib/public/Constants.php#L65) -- `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. +- `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 diff --git a/screenshots/aclAdmin.png b/screenshots/aclAdmin.png new file mode 100644 index 0000000..01250b4 Binary files /dev/null and b/screenshots/aclAdmin.png differ diff --git a/screenshots/edit.png b/screenshots/edit.png index 120291e..4057e43 100644 Binary files a/screenshots/edit.png and b/screenshots/edit.png differ diff --git a/screenshots/permissions.png b/screenshots/permissions.png index 3127b0b..7b848ad 100644 Binary files a/screenshots/permissions.png and b/screenshots/permissions.png differ