Documentation
¶
Overview ¶
Package permissions is the HTTP handlers for managing the permissions on a Cozy (creating a share by link for example).
Index ¶
Constants ¶
const ContextClaims = "token_claims"
ContextClaims is the key used in echo context to store claims
const ContextPermissionSet = "permissions_set"
ContextPermissionSet is the key used in echo context to store permissions set
Variables ¶
var ErrPatchCodeOrSet = echo.NewHTTPError(http.StatusBadRequest,
"The patch doc should have property 'codes' or 'permissions', not both")
ErrPatchCodeOrSet is returned when an attempt is made to patch both code & set in one request
Functions ¶
func HandleCreateShareByLink ¶
func HandleCreateShareByLink(c echo.Context, inst *instance.Instance, opts CreateShareByLinkOptions) error
HandleCreateShareByLink is the common handler for creating share-by-link permissions. It handles parsing, optional additional validation, creation via CreateShareSet, and response formatting.
Types ¶
type APIPermission ¶
type APIPermission struct {
*permission.Permission
// contains filtered or unexported fields
}
APIPermission is the struct that will be used to serialized a permission to JSON-API
func (*APIPermission) Included ¶
func (p *APIPermission) Included() []jsonapi.Object
Included implements jsonapi.Doc
func (*APIPermission) Links ¶
func (p *APIPermission) Links() *jsonapi.LinksList
Links implements jsonapi.Doc
func (*APIPermission) MarshalJSON ¶
func (p *APIPermission) MarshalJSON() ([]byte, error)
MarshalJSON implements jsonapi.Doc
func (*APIPermission) Relationships ¶
func (p *APIPermission) Relationships() jsonapi.RelationshipMap
Relationships implements jsonapi.Doc
type CreateShareByLinkOptions ¶
type CreateShareByLinkOptions struct {
ValidatePermissions ValidatePermissionsFn
SkipValidation bool
CreatorSlug *string
CreatorDomain *string
}
CreateShareByLinkOptions configures HandleCreateShareByLink behavior.
type ValidatePermissionsFn ¶
type ValidatePermissionsFn func(perms permission.Set) error
ValidatePermissionsFn is a function that validates permission rules. Used by HandleCreateShareByLink to allow additional validation on top of the standard permission checks (e.g., verifying files are within a shared drive).