Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContainsPermission ¶
ContainsPermission checks if action matches one of the required actions?
func HasAnyDocumentPermission ¶ added in v1.56.0
func HasAnyDocumentPermission(p DocumentRecord) bool
HasAnyDocumentPermission returns true if user has at least one permission.
func HasAnyPermission ¶
HasAnyPermission returns true if user has at least one permission.
Types ¶
type Action ¶
type Action string
Action details type of action
const ( // SpaceView action means you can view a space and documents therein SpaceView Action = "view" // SpaceManage action means you can add, remove users, set permissions, but not delete that space SpaceManage Action = "manage" // SpaceOwner action means you can delete a space and do all SpaceManage functions SpaceOwner Action = "own" // DocumentAdd action means you can create/upload documents to a space DocumentAdd Action = "doc-add" // DocumentEdit action means you can edit documents in a space DocumentEdit Action = "doc-edit" // DocumentDelete means you can delete documents in a space DocumentDelete Action = "doc-delete" // DocumentMove means you can move documents between spaces DocumentMove Action = "doc-move" // DocumentCopy means you can copy documents within and between spaces DocumentCopy Action = "doc-copy" // DocumentTemplate means you can create, edit and delete document templates and content blocks DocumentTemplate Action = "doc-template" // DocumentApprove means you can approve a change to a document DocumentApprove Action = "doc-approve" // CategoryView action means you can view a category and documents therein CategoryView Action = "view" )
type CategoryViewRequestModel ¶
type CategoryViewRequestModel struct { OrgID string `json:"orgId"` SpaceID string `json:"folderId"` CategoryID string `json:"categoryID"` UserID string `json:"userId"` }
CategoryViewRequestModel represents who should be allowed to see a category.
type DocumentRecord ¶ added in v1.56.0
type DocumentRecord struct { OrgID string `json:"orgId"` DocumentID string `json:"documentId"` UserID string `json:"userId"` DocumentRoleEdit bool `json:"documentRoleEdit"` DocumentRoleApprove bool `json:"documentRoleApprove"` }
DocumentRecord represents space permissions for a user on a document. This data structure is made from database permission records for the document, and it is designed to be sent to HTTP clients (web, mobile).
func DecodeUserDocumentPermissions ¶ added in v1.56.0
func DecodeUserDocumentPermissions(perm []Permission) (r DocumentRecord)
DecodeUserDocumentPermissions returns a flat, usable permission summary record from multiple user permission records for a given document.
type Permission ¶
type Permission struct { ID uint64 `json:"id"` OrgID string `json:"orgId"` Who string `json:"who"` // user, role WhoID string `json:"whoId"` // either a user or role ID Action Action `json:"action"` // view, edit, delete Scope string `json:"scope"` // object, table Location string `json:"location"` // table name RefID string `json:"refId"` // id of row in table / blank when scope=table Created time.Time `json:"created"` }
Permission represents a permission for a space and is persisted to the database.
func EncodeDocumentRecord ¶ added in v1.56.0
func EncodeDocumentRecord(r DocumentRecord, a Action) (p Permission)
EncodeDocumentRecord creates standard permission record representing user permissions for a document.
func EncodeRecord ¶
func EncodeRecord(r Record, a Action) (p Permission)
EncodeRecord creates standard permission record representing user permissions for a space.
func EncodeUserDocumentPermissions ¶ added in v1.56.0
func EncodeUserDocumentPermissions(r DocumentRecord) (perm []Permission)
EncodeUserDocumentPermissions returns multiple user permission records for a given document, using flat permission summary record.
func EncodeUserPermissions ¶
func EncodeUserPermissions(r Record) (perm []Permission)
EncodeUserPermissions returns multiple user permission records for a given space, using flat permission summary record.
type Record ¶
type Record struct { OrgID string `json:"orgId"` SpaceID string `json:"folderId"` UserID string `json:"userId"` SpaceView bool `json:"spaceView"` SpaceManage bool `json:"spaceManage"` SpaceOwner bool `json:"spaceOwner"` DocumentAdd bool `json:"documentAdd"` DocumentEdit bool `json:"documentEdit"` DocumentDelete bool `json:"documentDelete"` DocumentMove bool `json:"documentMove"` DocumentCopy bool `json:"documentCopy"` DocumentTemplate bool `json:"documentTemplate"` DocumentApprove bool `json:"documentApprove"` }
Record represents space permissions for a user on a space. This data structure is made from database permission records for the space, and it is designed to be sent to HTTP clients (web, mobile).
func DecodeUserPermissions ¶
func DecodeUserPermissions(perm []Permission) (r Record)
DecodeUserPermissions returns a flat, usable permission summary record from multiple user permission records for a given space.
type SpaceRequestModel ¶ added in v1.56.0
SpaceRequestModel details which users have what permissions on a given space.