permissions

package
v3.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 12, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package conversions sits between CS3 type definitions and OCS API Responses

Index

Constants

View Source
const (
	// RoleViewer grants non-editor role on a resource.
	RoleViewer = "viewer"
	// RoleReader grants non-editor role on a resource.
	RoleReader = "reader"
	// RoleEditor grants editor permission on a resource, including folders.
	RoleEditor = "editor"
	// RoleFileEditor grants editor permission on a single file.
	RoleFileEditor = "file-editor"
	// RoleUploader grants uploader permission to upload onto a resource.
	RoleUploader = "uploader"
	// RoleManager grants manager permissions on a resource. Semantically equivalent to co-owner.
	RoleManager = "manager"
	// RoleUnknown is used for unknown roles.
	RoleUnknown = "unknown"
	// RoleLegacy provides backwards compatibility.
	RoleLegacy = "legacy"
	// RoleDenied grants no permission at all on a resource.
	RoleDenied = "denied"
)

Variables

View Source
var (
	// ErrPermissionNotInRange defines a permission specific error.
	ErrPermissionNotInRange = fmt.Errorf("the provided permission is not between %d and %d", PermissionInvalid, PermissionAll)
)

Functions

This section is empty.

Types

type OcsPermissions

type OcsPermissions uint

OcsPermissions reflects the CRUD permissions used in the OCS sharing API.

const (
	// PermissionInvalid grants no permissions on a resource.
	PermissionInvalid OcsPermissions = 0
	// PermissionRead grants read permissions on a resource.
	PermissionRead OcsPermissions = 1 << (iota - 1)
	// PermissionWrite grants write permissions on a resource.
	PermissionWrite
	// PermissionCreate grants create permissions on a resource.
	PermissionCreate
	// PermissionDelete grants delete permissions on a resource.
	PermissionDelete
	// PermissionShare grants share permissions on a resource.
	PermissionShare
	// PermissionDeny grants permissions to deny access on a resource
	// The recipient of the resource will then have PermissionNone.
	PermissionDeny
	// PermissionNone grants no permissions on a resource.
	PermissionNone
	// PermissionMax is to be used within value range checks.
	PermissionMax OcsPermissions = (1 << (iota - 1)) - 1
	// PermissionAll grants all permissions on a resource.
	PermissionAll = PermissionMax - PermissionNone
	// PermissionMin is to be used within value range checks.
	PermissionMin = PermissionRead
)

func NewPermissions

func NewPermissions(val int) (OcsPermissions, error)

NewPermissions creates a new Permissions instance. The value must be in the valid range.

func (OcsPermissions) AsCS3Permissions

func (p OcsPermissions) AsCS3Permissions() *provider.ResourcePermissions

func (OcsPermissions) Contain

func (p OcsPermissions) Contain(other OcsPermissions) bool

Contain tests if the permissions contain another one.

type Role

type Role struct {
	Name string
	// contains filtered or unexported fields
}

Role is a set of ocs permissions and cs3 resource permissions under a common name.

func NewDeniedRole

func NewDeniedRole() *Role

NewDeniedRole creates a fully denied role.

func NewEditorRole

func NewEditorRole() *Role

NewEditorRole creates an editor role.

func NewFileEditorRole

func NewFileEditorRole() *Role

NewFileEditorRole creates a file-editor role.

func NewManagerRole

func NewManagerRole() *Role

NewManagerRole creates an editor role.

func NewUnknownRole

func NewUnknownRole() *Role

NewUnknownRole creates an unknown role. An Unknown role has no permissions over a cs3 resource nor any ocs endpoint.

func NewUploaderRole

func NewUploaderRole() *Role

NewUploaderRole creates an uploader role.

func NewViewerRole

func NewViewerRole() *Role

NewViewerRole creates a viewer role.

func RoleFromName

func RoleFromName(name string) *Role

RoleFromName creates a role from the name.

func RoleFromOCSPermissions

func RoleFromOCSPermissions(p OcsPermissions) *Role

RoleFromOCSPermissions tries to map ocs permissions to a role.

func RoleFromResourcePermissions

func RoleFromResourcePermissions(rp *provider.ResourcePermissions) *Role

RoleFromResourcePermissions tries to map cs3 resource permissions to a role.

func (*Role) CS3ResourcePermissions

func (r *Role) CS3ResourcePermissions() *provider.ResourcePermissions

CS3ResourcePermissions for the role.

func (*Role) OCSPermissions

func (r *Role) OCSPermissions() OcsPermissions

OCSPermissions for the role.

func (*Role) WebDAVPermissions

func (r *Role) WebDAVPermissions(isDir, isShared, isMountpoint, isPublic, isOpenable bool) string

WebDAVPermissions returns the webdav permissions used in propfinds, eg. "WCKDNVR" D = delete NV = update (renameable moveable) W = update (files only) CK = create (folders only) S = Shared R = Shareable M = Mounted Z = Deniable O = Openable.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL