diff --git a/changelog/unreleased/share-create-perm-fix.md b/changelog/unreleased/share-create-perm-fix.md new file mode 100644 index 0000000000..5dda4c3234 --- /dev/null +++ b/changelog/unreleased/share-create-perm-fix.md @@ -0,0 +1,7 @@ +Bugfix: Use ocs permission objects in the reva GRPC client + +There was a bug introduced by differing CS3APIs permission definitions +for the same role across services. This is a first step in making +all services use consistent definitions. + +https://github.com/cs3org/reva/pull/2478 \ No newline at end of file diff --git a/cmd/reva/common.go b/cmd/reva/common.go index ed630c1128..64f80ac566 100644 --- a/cmd/reva/common.go +++ b/cmd/reva/common.go @@ -31,7 +31,6 @@ import ( const ( viewerPermission string = "viewer" - readerPermission string = "reader" editorPermission string = "editor" collabPermission string = "collab" denyPermission string = "denied" diff --git a/cmd/reva/share-create.go b/cmd/reva/share-create.go index 3713b76e6e..7042c73615 100644 --- a/cmd/reva/share-create.go +++ b/cmd/reva/share-create.go @@ -28,6 +28,7 @@ import ( rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" collaboration "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + "github.com/cs3org/reva/internal/http/services/owncloud/ocs/conversions" "github.com/cs3org/reva/pkg/utils" "github.com/jedib0t/go-pretty/table" "github.com/pkg/errors" @@ -158,48 +159,11 @@ func getGrantType(t string) provider.GranteeType { func getSharePerm(p string) (*provider.ResourcePermissions, error) { switch p { case viewerPermission: - return &provider.ResourcePermissions{ - GetPath: true, - ListContainer: true, - Stat: true, - }, nil - case readerPermission: - return &provider.ResourcePermissions{ - GetPath: true, - InitiateFileDownload: true, - ListFileVersions: true, - ListContainer: true, - Stat: true, - }, nil + return conversions.NewViewerRole().CS3ResourcePermissions(), nil case editorPermission: - return &provider.ResourcePermissions{ - GetPath: true, - InitiateFileDownload: true, - ListFileVersions: true, - ListContainer: true, - Stat: true, - CreateContainer: true, - Delete: true, - InitiateFileUpload: true, - RestoreFileVersion: true, - Move: true, - }, nil + return conversions.NewEditorRole().CS3ResourcePermissions(), nil case collabPermission: - return &provider.ResourcePermissions{ - GetPath: true, - InitiateFileDownload: true, - ListFileVersions: true, - ListContainer: true, - Stat: true, - CreateContainer: true, - Delete: true, - InitiateFileUpload: true, - RestoreFileVersion: true, - Move: true, - AddGrant: true, - UpdateGrant: true, - RemoveGrant: true, - }, nil + return conversions.NewCoownerRole().CS3ResourcePermissions(), nil case denyPermission: return &provider.ResourcePermissions{}, nil default: