bump reva

Signed-off-by: jkoberg <jkoberg@owncloud.com>
This commit is contained in:
jkoberg
2024-04-04 17:25:40 +02:00
parent c7303ebdac
commit b06767a020
12 changed files with 56 additions and 81 deletions
+26 -42
View File
@@ -141,20 +141,20 @@ func (r *Role) WebDAVPermissions(isDir, isShared, isMountpoint, isPublic bool) s
}
// RoleFromName creates a role from the name
func RoleFromName(name string, sharing bool) *Role {
func RoleFromName(name string) *Role {
switch name {
case RoleDenied:
return NewDeniedRole()
case RoleViewer:
return NewViewerRole(sharing)
return NewViewerRole()
case RoleSpaceViewer:
return NewSpaceViewerRole()
case RoleEditor:
return NewEditorRole(sharing)
return NewEditorRole()
case RoleSpaceEditor:
return NewSpaceEditorRole()
case RoleFileEditor:
return NewFileEditorRole(sharing)
return NewFileEditorRole()
case RoleUploader:
return NewUploaderRole()
case RoleManager:
@@ -183,15 +183,11 @@ func NewDeniedRole() *Role {
}
// NewViewerRole creates a viewer role. `sharing` indicates if sharing permission should be added
func NewViewerRole(sharing bool) *Role {
func NewViewerRole() *Role {
p := PermissionRead
if sharing {
p |= PermissionShare
}
return &Role{
Name: RoleViewer,
cS3ResourcePermissions: &provider.ResourcePermissions{
AddGrant: sharing,
GetPath: true,
GetQuota: true,
InitiateFileDownload: true,
@@ -221,15 +217,11 @@ func NewSpaceViewerRole() *Role {
}
// NewEditorRole creates an editor role. `sharing` indicates if sharing permission should be added
func NewEditorRole(sharing bool) *Role {
func NewEditorRole() *Role {
p := PermissionRead | PermissionCreate | PermissionWrite | PermissionDelete
if sharing {
p |= PermissionShare
}
return &Role{
Name: RoleEditor,
cS3ResourcePermissions: &provider.ResourcePermissions{
AddGrant: sharing,
CreateContainer: true,
Delete: true,
GetPath: true,
@@ -271,15 +263,11 @@ func NewSpaceEditorRole() *Role {
}
// NewFileEditorRole creates a file-editor role
func NewFileEditorRole(sharing bool) *Role {
func NewFileEditorRole() *Role {
p := PermissionRead | PermissionWrite
if sharing {
p |= PermissionShare
}
return &Role{
Name: RoleEditor,
cS3ResourcePermissions: &provider.ResourcePermissions{
AddGrant: sharing,
GetPath: true,
GetQuota: true,
InitiateFileDownload: true,
@@ -378,34 +366,30 @@ func NewManagerRole() *Role {
// RoleFromOCSPermissions tries to map ocs permissions to a role
// TODO: rethink using this. ocs permissions cannot be assigned 1:1 to roles
func RoleFromOCSPermissions(p Permissions, ri *provider.ResourceInfo) *Role {
if p == PermissionInvalid {
switch {
// Invalid
case p == PermissionInvalid:
return NewNoneRole()
}
if p.Contain(PermissionRead) {
if p.Contain(PermissionWrite) && p.Contain(PermissionCreate) && p.Contain(PermissionDelete) {
if p.Contain(PermissionShare) {
return NewEditorRole(true)
}
if isSpaceRoot(ri) {
return NewSpaceEditorRole()
}
}
if p == PermissionRead && isSpaceRoot(ri) {
// Uploader
case p == PermissionCreate:
return NewUploaderRole()
// Viewer/SpaceViewer
case p == PermissionRead:
if isSpaceRoot(ri) {
return NewSpaceViewerRole()
}
if p == PermissionRead|PermissionShare && !isSpaceRoot(ri) {
return NewViewerRole(true)
return NewViewerRole()
// Editor/SpaceEditor
case p.Contain(PermissionRead) && p.Contain(PermissionWrite) && p.Contain(PermissionCreate) && p.Contain(PermissionDelete) && !p.Contain(PermissionShare):
if isSpaceRoot(ri) {
return NewSpaceEditorRole()
}
return NewEditorRole()
// Custom
default:
return NewLegacyRoleFromOCSPermissions(p)
}
if p == PermissionCreate {
return NewUploaderRole()
}
// legacy
return NewLegacyRoleFromOCSPermissions(p)
}
func isSpaceRoot(ri *provider.ResourceInfo) bool {