Skip to content
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

Create a Space #2476

Closed
exalate-issue-sync bot opened this issue Sep 8, 2021 · 3 comments
Closed

Create a Space #2476

exalate-issue-sync bot opened this issue Sep 8, 2021 · 3 comments
Labels
Type:Story User Story

Comments

@exalate-issue-sync
Copy link

exalate-issue-sync bot commented Sep 8, 2021

Story

As a user with a role that has the permission to "create spaces" I want to create a new Space so that a team/project can work with it.
When the Space is available, I should be the only member and have the role Co-Owner so that I can start managing (add users, description, image) the Space. In addition, the Space should have a default quota and be prepared to store metadata I want to associate with it.

Acceptance Criteria

  • Creating a Space only requires a name as input
  • When Space creation is confirmed, the Space is being provisioned:
  1. A new Space (a folder) will be created on the storage. The folder is independent from any user's personal space and quota. One Space can only live on one storage. Individual Spaces do not span across multiple physical storages.
  2. An initial (default) Space quota is set
  3. A hidden folder ".space" will be created to store Space metadata (e.g., description, image)
  4. The requesting user becomes the first member of the Space and has the role "Editor"
  • acceptance tests cover the implemented functionality
  • space names do not have to be unique.

Extra

  • users with the permission create-space are the only ones who can create a space.
@exalate-issue-sync
Copy link
Author

Alex Unger commented: Reva PR: cs3org/reva#2041
oCIS PR: #2471

the oCIS PR makes use of the Microsoft Graph API to create a new space. The route used for it was //POST -> /drives/{drive-id}, where drive-id is the space's name. This is subject to change.

@exalate-issue-sync
Copy link
Author

Alex Unger commented: difficulties encountered:

  • when setting the space name using the user.ocis.name, that causes somewhere downstream (in uploadrequest) error when resolving the node. To circumvent from this a new xattr has been added for spaces: user.ocis.spaces.name that will allow us to have multiple spaces with the same name.

@exalate-issue-sync
Copy link
Author

Alex Unger commented: Technical Debt encountered (related or unrelated to this ticket):

  • The proxy lets any request with Basic Auth (opened a ticket).
  • The default space type is hardcoded to "share" until we figure out a correct mechanism.
  • Adding a grant creates a space in "shares". This is a non desired side effect when adding a grant to a new space. Since we are building on top of existing functionality, there is a lot of room for improvement. We could extend the FS interface to account for assigning a Grant to a Storage Space
  • The API to check whether a user has a permission or not is very obscure and it does not read as it should:
_, err := s.GetPermissionByID(r.Context(), &sproto.GetPermissionByIDRequest{
		PermissionId: settingsSvc.CreateSpacePermissionID,
})

that to me reads as: "get me this permission I'm asking for" instead of "check if user has permission".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type:Story User Story
Projects
None yet
Development

No branches or pull requests

0 participants