-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add collaborators #29
Open
pmaier1
wants to merge
11
commits into
master
Choose a base branch
from
collaborators
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
f268558
Initial commit
pmaier1 b160f26
Add side of the recipient
pmaier1 e2c73ea
Add pending shares
pmaier1 6ba0025
Add overview of received shared resources
pmaier1 cef8922
corrections
pmaier1 f654bb0
add details for viewing collaborators
pmaier1 6d690a1
minor corrections
pmaier1 ca2209f
more corrections
pmaier1 1633042
Fix Gherkin syntax
pmaier1 e66bf61
gherkin compliance
pmaier1 a579b4b
correction
pmaier1 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
features/resources/accessing_a_resource_as_a_collaborator.feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
Feature: Accessing a resource as a collaborator | ||
|
||
Scenario: Accessing a resource as a collaborator with the 'Viewer' role | ||
Given I'm a logged in user who is a collaborator of a resource | ||
And I have the role 'Viewer' | ||
# And I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' | ||
When accessing this resource | ||
Then I can list the resource and its contents | ||
And I can download the resource and its contents | ||
And I can view the resource and its contents as in 'Feature: Accessing a resource' | ||
And I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' | ||
And I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' | ||
And I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' | ||
|
||
Scenario: Accessing a resource as a collaborator with the 'Editor' role | ||
Given I'm a logged in user who is a collaborator of a resource | ||
And I have the role 'Editor' | ||
# And I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' | ||
When accessing this resource | ||
Then I can list the resource and its contents | ||
And I can download the resource and its contents | ||
And I can view the resource and its contents as in 'Feature: Accessing a resource' | ||
And I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' | ||
And I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' | ||
And I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' | ||
And I can rename the contents of the resource as in 'Feature: Renaming a resource' | ||
And I can delete the contents of the resource as in 'Feature: Deleting a resource' | ||
And I can move the contents of the resource as in 'Feature: Moving a resource' | ||
And I can move resources into the resource as in 'Feature: Moving a resource' | ||
And I can move resources out of the resource as in 'Feature: Moving a resource' | ||
And I can create resources within the resource as in 'Feature: Creating a resource' | ||
And I can upload resources into the resource as in 'Feature: Uploading a resource' | ||
And I can edit/change/update the resource and its contents | ||
|
||
Scenario: Accessing a resource as a collaborator with the 'Advanced permissions' role | ||
Given I'm a logged in user who is a collaborator of a resource | ||
And I have the role 'Advanced permissions' | ||
# And I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' | ||
When accessing this resource | ||
Then I can list the resource and its contents | ||
And I can download the resource and its contents | ||
And I can view the resource and its contents as in 'Feature: Accessing a resource' | ||
And I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' | ||
And I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' | ||
And I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' | ||
And I can use the resource based on the additionally granted detailed permissions described below | ||
And the granted detailed permissions can stack/complement each other | ||
|
||
When accessing this resources without any of the detailed permissions | ||
Then the behavior equals 'Scenario: Accessing a resource as a collaborator with the 'Viewer' role' | ||
|
||
When accessing this resource only with the permission "Edit" (single file) | ||
Then I can edit/change/update the resource | ||
|
||
When accessing this resource only with the permission "Create" (folder) | ||
Then I can move resources into the resource as in 'Feature: Moving a resource' | ||
And I can create resources within the resource as in 'Feature: Creating a resource' | ||
And I can upload resources into the resource as in 'Feature: Uploading a resource' | ||
|
||
When accessing this resource only with the permission "Change" (folder) | ||
Then I can rename the contents of the resource as in 'Feature: Renaming a resource' | ||
And I can edit/change/update the resource and its contents | ||
|
||
When accessing this resource only with the permission "Delete" (folder) | ||
Then I can delete the contents of the resource as in 'Feature: Deleting a resource' | ||
And I can move resources out of the resource as in 'Feature: Moving a resource' | ||
|
||
When accessing this resource only with the permission "Manage" | ||
Then I can add collaborators to the resource as in 'Feature: Adding collaborators to a resource' | ||
And I can manage the collaborators of the resource as in 'Feature: Managing collaborators of a resource' |
13 changes: 13 additions & 0 deletions
13
features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Feature: Being added/removed as a collaborator to/from a resource | ||
|
||
Scenario: Being added as a regular single user | ||
Given I'm a regular ownCloud user of the instance the resource is located on | ||
When I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' | ||
Then the subsequent behavior is determined by 'Feature: Pending Shares' | ||
|
||
Scenario: Being removed as a collaborator from a resource | ||
Given I'm a collaborator of a certain resource | ||
When I'm removed from the resource as in 'Scenario: Removing a collaborator from a resource' | ||
Then I do not have access to the resource anymore | ||
And the resource disappears from my resource list | ||
And I don't have a way to get back access except asking a collaborator to add me again |
30 changes: 30 additions & 0 deletions
30
features/resources/overview_of_received_shared_resources.feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
Feature: Overview of received shared resources | ||
|
||
Scenario: Listing received shared resources | ||
Given I'm logged in as a user | ||
When I have collaborator invites (accepted/pending/declined) | ||
Then I can list these resources | ||
And I see the name of the resources | ||
And I see file type icons or thumbnails | ||
And I can recognize the initiator of the invite | ||
And I see the time since the invite has been initiated | ||
And I see the state of the invite (accepted/pending/declined) | ||
And I can add these resources to my personal space as in 'Scenario: Adding a shared resource to a user's personal space' | ||
And I can remove these resources from my personal space as in 'Scenario: Removing a shared resource from a user's personal space' | ||
And I can sort the list (ascending/descending) by name, state and time | ||
|
||
Scenario: Adding a shared resource to a user's personal space | ||
Given I'm a logged in user | ||
When I have pending/declined collaborator invites | ||
Then I can add such a resource to my personal space | ||
And the state of the invite changes to 'accepted' | ||
And the resource is located in the folder configured via the 'share_folder' option | ||
And I can access it as in 'Feature: Accessing a resource as a collaborator' | ||
|
||
Scenario: Removing a shared resource from a user's personal space | ||
Given I'm a logged in user | ||
When I have accepted collaborator invites | ||
Then I can remove such a resource from my personal space | ||
And the state of the invite changes to 'declined' | ||
And the resource is not located in my hierarchy any more | ||
And I can't access it any more |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
Feature: Pending Shares | ||
|
||
Scenario: Being added as a collaborator to a resource (Pending Shares enabled) | ||
Given I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' | ||
# When the option 'Automatically accept new incoming local user shares' is disabled | ||
Then the resource is not yet located in my file hierarchy | ||
# Then I am notified about the invite and can choose to 'accept' or 'decline' it | ||
And the resource appears in 'Feature: Overview of received shared resources' with state 'Pending' | ||
When I decline the resource | ||
# Then the notification is dismissed | ||
Then the state of the invite changes to 'declined' | ||
When I accept the resource | ||
# Then the notification is dismissed | ||
Then the state of the invite changes to 'accepted' | ||
And the resource is located in the folder configured via the 'share_folder' option | ||
And I can access it as in 'Feature: Accessing a resource as a collaborator' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 25 additions & 0 deletions
25
features/sharing/adding_collaborators_to_a_resource.feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
Feature: Adding collaborators to a resource | ||
|
||
Scenario: Finding collaborators | ||
Given I'm a logged in user located in the collaborators panel of a resource | ||
When I start typing in the collaborator search field | ||
Then I see suggestions (with potentially many characters) based on the available user and group identifiers/attributes, sharing restrictions and options for autocomplete results. These are structured in the following way: | ||
- [Avatar] Identifier / name / mail address / federation ID | ||
- Additional information if applicable (e.g. 'Scenario: Extra field to display in autocomplete results') | ||
- Type (User/Group/Guest/Federated) | ||
And the suggestions for guests or federated users only appear once I enter a compliant identifier (e.g., "name@sub.domain.tld") | ||
Then I choose a collaborator | ||
And the chosen collaborator becomes fixed but can easily be removed again | ||
And I can start typing again to add additional collaborators | ||
|
||
Scenario: Setting collaborator properties | ||
Given I'm adding collaborators as in 'Scenario: Finding collaborators' | ||
When having added the first collaborator | ||
Then I can choose a role for the chosen collaborators as in 'Feature: Roles for collaborators' | ||
Then I can set an expiration date for the chosen collaborators as in 'Feature: Expiration date for collaborators' | ||
|
||
Scenario: Confirming collaborators | ||
Given I have set collaborator properties as in 'Scenario: Setting collaborator properties' | ||
When I confirm the supplied information | ||
Then the collaborators are added to the resource according to the specified properties | ||
And I get visual feedback to know whether the action was successful or not |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
--- | ||
title: Collaborators | ||
geekdocRepo: https://github.com/owncloud/product | ||
geekdocEditPath: edit/master/docs | ||
geekdocFilePath: collaborators.md | ||
--- | ||
|
||
This document describes the features around 'Collaborators' from the perspective of the owner. The perspective of a recipient is described in the section 'Resources'. | ||
|
||
## User stories | ||
|
||
1. Adding single collaborators to a resource (user share) | ||
* Use case: As a user I want to exchange data with internal single users for that they get access and can collaborate with me | ||
|
||
## Requirements | ||
|
||
### Adding collaborators to a resource | ||
|
||
- As an owner or co-owner of a resource I want to be able to add other collaborators to the resource in order to provide access and to enable collaboration on the resource. | ||
|
||
{{< include file="features/sharing/adding_collaborators_to_a_resource.feature" language="gherkin">}} | ||
|
||
### Managing collaborators of a resource | ||
|
||
{{< include file="features/sharing/managing_collaborators_of_a_resource.feature" language="gherkin">}} | ||
|
||
### Roles for collaborators | ||
|
||
- As a regular user adding collaborators to a resource I want to choose roles for collaborators as these are easy to understand and less technical than raw permissions. Still, I need a brief explanation of what the roles exactly stand for in order to prevent mistakes. For legacy reasons and as a power user I still need granular permissions to restrict collaborators to exactly the features I want to allow. | ||
|
||
{{< include file="features/sharing/roles_for_collaborators.feature" language="gherkin">}} |
54 changes: 54 additions & 0 deletions
54
features/sharing/managing_collaborators_of_a_resource.feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
Feature: Managing collaborators of a resource | ||
|
||
Scenario: Viewing collaborators of a resource as an Owner | ||
Given I'm a collaborator of a specific resource | ||
And I have the role 'Owner' | ||
When looking at the resource in detail | ||
Then I get a list of all collaborators of the resource separated by users and groups whereby each entry contains the following information | ||
- Name | ||
# - Additional information based on 'Scenario: Extra field to display in autocomplete results' | ||
- Avatar | ||
# - Type (User/Guest/Federated) | ||
- Role | ||
# - State (pending/accepted; for local/federated/guest) | ||
# - Expiration date (if applicable) | ||
- Initiator of a reshare (if applicable) | ||
And the list also contains collaborators of parent resources as static entries | ||
And collaborators of parent resources indicate their origin and allow to jump there ("via") | ||
And I see myself always as the first entry in the list | ||
|
||
Scenario: Viewing collaborators of a resource as a regular collaborator | ||
Given I'm a collaborator of a specific resource | ||
And I don't have the role 'Owner' | ||
When looking at the resource in detail | ||
Then I get a list of all collaborators whom I added to the resource, separated by users and groups whereby each entry contains the following information | ||
- Name | ||
# - Additional information based on 'Scenario: Extra field to display in autocomplete results' | ||
- Avatar | ||
# - Type (User/Guest/Federated) | ||
- Role | ||
# - State (pending/accepted; for local/federated/guest) | ||
# - Expiration date (if applicable) | ||
- Initiator of a reshare (if applicable) | ||
And the list also contains collaborators of parent resources whom I added as static entries | ||
And collaborators of parent resources indicate their origin and allow to jump there ("via") | ||
And I see the Owner of the resource always as the first entry in the list | ||
And I see myself in the list | ||
|
||
Scenario: Removing a collaborator from a resource | ||
Given I'm a collaborator of a specific resource | ||
And I can list other collaborators | ||
When looking at the resource in detail | ||
Then I can remove collaborators from the resource | ||
And I have to confirm the removal | ||
And the collaborator disappears from the list | ||
And the removed users do not have access anymore | ||
|
||
Scenario: Modifying a collaborator of a resource | ||
Given I'm a collaborator of a specific resource | ||
And I can list other collaborators | ||
When looking at the resource in detail | ||
Then I can change each collaborator's role as in 'Feature: Roles for collaborators' | ||
And I can change each collaborator's expiration date as in 'Feature: Expiration date for collaborators' | ||
And I have to confirm the modifications | ||
And the modifications take effect |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
Feature: Roles for collaborators | ||
|
||
- Owner: The physical owner of the resource | ||
#- Co-Owner: Full permissions including managing existing and adding additional collaborators | ||
- Editor: View + Edit permissions | ||
- Viewer: View only | ||
#- Dynamic roles (e.g. Secure Viewer) | ||
- Advanced permissions | ||
- Cover legacy permission combinations | ||
- Offer granular permission sets | ||
|
||
Scenario: Setting roles for collaborators on a single file as an Owner | ||
Given I'm a collaborator of a specific file | ||
And I have the role 'Owner' | ||
When located in 'Scenario: Setting collaborator properties' | ||
# Then I can choose the role 'Co-Owner' | ||
# And I see an explanatory note "Manage collaborators, view, download and edit" | ||
Then I can choose the role 'Editor' | ||
And I see an explanatory note "View, download and edit" | ||
Then I can choose the role 'Viewer' | ||
And I see an explanatory note "View and download" | ||
# Then I can choose dynamic roles like 'Secure Viewer' which are introduced by apps | ||
# And I see an explanatory note defined by the respective app | ||
# When choosing a dynamic role | ||
# Then I can set single sub-permissions like 'Print / Export PDF' defined by the respective app | ||
Then I can choose the role 'Advanced permissions' | ||
And I see an explanatory note "Set detailed permissions" | ||
When choosing the role 'Advanced permissions' | ||
Then I can set single permissions "Manage" and "Edit" | ||
|
||
Scenario: Setting roles for collaborators on a folder as an Owner | ||
Given I'm a collaborator of a specific folder | ||
And I have the role 'Owner' | ||
When located in 'Scenario: Setting collaborator properties' | ||
# Then I can choose the role 'Co-Owner' | ||
# And I see an explanatory note "Manage collaborators, view, download, edit and delete" | ||
Then I can choose the role 'Editor' | ||
And I see an explanatory note "View, download, edit and delete" | ||
Then I can choose the role 'Viewer' | ||
And I see an explanatory note "View and download" | ||
# Then I can choose dynamic roles like 'Secure Viewer' which are introduced by apps | ||
# And I see an explanatory note defined by the respective app | ||
# When choosing a dynamic role | ||
# Then I can set single sub-permissions like 'Print / Export PDF' defined by the respective app | ||
Then I can choose the role 'Advanced permissions' | ||
And I see an explanatory note "Set detailed permissions" | ||
When choosing the role 'Advanced permissions' | ||
Then I can set single permissions "Manage", "Create", "Change", "Delete" |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same