Feature: Remove access to a drive https://owncloud.dev/libre-graph-api/#/drives.root/DeletePermissionSpaceRoot Background: Given these users have been created with default attributes and without skeleton files: | username | | Alice | | Brian | | Carol | And using spaces DAV path Scenario Outline: user removes user member from project space Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | Brian | | shareType | user | | permissionsRole | | When user "Alice" removes the access of user "Brian" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "204" And the user "Brian" should not have a space called "NewSpace" Examples: | permissions-role | | Space Viewer | | Space Editor | | Manager | @issue-8768 Scenario Outline: user removes group from project space Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And group "group1" has been created And user "Brian" has been added to group "group1" And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | group1 | | shareType | group | | permissionsRole | | When user "Alice" removes the access of group "group1" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "204" And the user "Brian" should not have a space called "NewSpace" Examples: | permissions-role | | Space Viewer | | Space Editor | | Manager | Scenario Outline: user of a group removes another user from project space Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And group "group1" has been created And user "Brian" has been added to group "group1" And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | group1 | | shareType | group | | permissionsRole | | And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | Carol | | shareType | user | | permissionsRole | Space Viewer | When user "Brian" removes the access of user "Carol" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "" And the user "Carol" have a space called "NewSpace" Examples: | permissions-role | status-code | shouldOrNot | | Space Viewer | 403 | should | | Space Editor | 403 | should | | Manager | 204 | should not | Scenario Outline: user of a group removes own group from project space Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And group "group1" has been created And user "Brian" has been added to group "group1" And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | group1 | | shareType | group | | permissionsRole | | When user "Brian" removes the access of group "group1" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "" And the user "Brian" have a space called "NewSpace" Examples: | permissions-role | status-code | shouldOrNot | | Space Viewer | 403 | should | | Space Editor | 403 | should | | Manager | 204 | should not | @issue-8819 Scenario Outline: user removes himself from the project space Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | Brian | | shareType | user | | permissionsRole | | When user "Brian" removes the access of user "Brian" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "" And the user "Brian" have a space called "NewSpace" Examples: | permissions-role | status-code | shouldOrNot | | Space Viewer | 403 | should | | Space Editor | 403 | should | | Manager | 204 | should not | @issue-8819 Scenario Outline: user removes another user from project space using permissions endpoint Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | Brian | | shareType | user | | permissionsRole | | And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | Carol | | shareType | user | | permissionsRole | Space Viewer | When user "Brian" removes the access of user "Carol" from space "NewSpace" using permissions endpoint of the Graph API Then the HTTP status code should be "" And the user "Carol" have a space called "NewSpace" Examples: | permissions-role | status-code | shouldOrNot | | Space Viewer | 403 | should | | Space Editor | 403 | should | | Manager | 204 | should not | Scenario: user cannot remove himself from the project space if he is the last manager Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And user "Alice" has created a space "NewSpace" with the default quota using the Graph API When user "Alice" tries to remove the access of user "Alice" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "403" And the user "Alice" should have a space called "NewSpace" Scenario: user of a group cannot remove own group from project space if it is the last manager Given the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API And group "group1" has been created And user "Brian" has been added to group "group1" And user "Alice" has created a space "NewSpace" with the default quota using the Graph API And user "Alice" has sent the following share invitation: | space | NewSpace | | sharee | group1 | | shareType | group | | permissionsRole | Manager | And user "Alice" has removed the access of user "Alice" from space "NewSpace" When user "Brian" tries to remove the access of group "group1" from space "NewSpace" using root endpoint of the Graph API Then the HTTP status code should be "403" And the user "Brian" should have a space called "NewSpace"