Documentation
¶
Overview ¶
Package conversions sits between CS3 type definitions and OCS API Responses
Index ¶
- Constants
- Variables
- type OcsPermissions
- type Role
- func NewDeniedRole() *Role
- func NewEditorRole() *Role
- func NewFileEditorRole() *Role
- func NewManagerRole() *Role
- func NewUnknownRole() *Role
- func NewUploaderRole() *Role
- func NewViewerRole() *Role
- func RoleFromName(name string) *Role
- func RoleFromOCSPermissions(p OcsPermissions) *Role
- func RoleFromResourcePermissions(rp *provider.ResourcePermissions) *Role
Constants ¶
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 ¶
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 // 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 OCSFromCS3Permission ¶
func OCSFromCS3Permission(p *provider.ResourcePermissions) OcsPermissions
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 NewFileEditorRole ¶
func NewFileEditorRole() *Role
NewFileEditorRole creates a file-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 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 ¶
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.