Documentation ¶
Index ¶
- Variables
- func DeletePermitted(db *mgo.Database, entity Referencer, refs ...Referencer) bool
- func InsertList(db *mgo.Database, entityList ...Referencer) (int, error)
- func PersistClearAccessControl(db *mgo.Database, entity Referencer, entities ...Referencer) error
- func PersistPermitDelete(db *mgo.Database, entity Referencer, entities ...Referencer) error
- func PersistPermitRead(db *mgo.Database, entity Referencer, entities ...Referencer) error
- func PersistPermitUpdate(db *mgo.Database, entity Referencer, entities ...Referencer) error
- func PersistPrivate(db *mgo.Database, entity Referencer) error
- func PersistPublic(db *mgo.Database, entity Referencer) error
- func ReadPermitted(db *mgo.Database, entity Referencer, refs ...Referencer) bool
- func RefreshEntity(db *mgo.Database, entity Referencer) error
- func UpdateEntity(db *mgo.Database, entity Referencer, updateDoc Map) error
- func UpdatePermitted(db *mgo.Database, entity Referencer, refs ...Referencer) bool
- type AC
- func (ac *AC) ClearAccessControl(refs ...Referencer)
- func (ac AC) DeletePermitted(refs ...Referencer) bool
- func (ac *AC) PermitDelete(refs ...Referencer)
- func (ac *AC) PermitRead(refs ...Referencer)
- func (ac *AC) PermitUpdate(refs ...Referencer)
- func (ac AC) ReadPermitted(refs ...Referencer) bool
- func (ac *AC) SetCreator(id Reference) error
- func (ac AC) UpdatePermitted(refs ...Referencer) bool
- type Entity
- type Map
- type Reference
- type Referencer
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ACPath = "_ac" PublicPath = ACPath + ".pu" ReadersPath = ACPath + ".r" UpdatersPath = ACPath + ".u" DeletersPath = ACPath + ".d" CreatorPath = ACPath + ".cr" )
View Source
var SelectEntityDoc = map[string]int{"_id": 1, ACPath: 1}
Functions ¶
func DeletePermitted ¶
func DeletePermitted(db *mgo.Database, entity Referencer, refs ...Referencer) bool
func InsertList ¶
func InsertList(db *mgo.Database, entityList ...Referencer) (int, error)
func PersistClearAccessControl ¶
func PersistClearAccessControl(db *mgo.Database, entity Referencer, entities ...Referencer) error
func PersistPermitDelete ¶
func PersistPermitDelete(db *mgo.Database, entity Referencer, entities ...Referencer) error
func PersistPermitRead ¶
func PersistPermitRead(db *mgo.Database, entity Referencer, entities ...Referencer) error
func PersistPermitUpdate ¶
func PersistPermitUpdate(db *mgo.Database, entity Referencer, entities ...Referencer) error
func PersistPrivate ¶
func PersistPrivate(db *mgo.Database, entity Referencer) error
func PersistPublic ¶
func PersistPublic(db *mgo.Database, entity Referencer) error
func ReadPermitted ¶
func ReadPermitted(db *mgo.Database, entity Referencer, refs ...Referencer) bool
func RefreshEntity ¶
func RefreshEntity(db *mgo.Database, entity Referencer) error
func UpdateEntity ¶
func UpdateEntity(db *mgo.Database, entity Referencer, updateDoc Map) error
func UpdatePermitted ¶
func UpdatePermitted(db *mgo.Database, entity Referencer, refs ...Referencer) bool
Types ¶
type AC ¶
type AC struct { Readers []Reference `json:"r,omitempty" bson:"r,omitempty"` Updaters []Reference `json:"u,omitempty" bson:"u,omitempty"` Deleters []Reference `json:"d,omitempty" bson:"d,omitempty"` Creator *Reference `json:"cr,omitempty" bson:"cr,omitempty"` Public bool `json:"pu" bson:"pu"` }
AC should be Embeded in structs to be stored in MongoDB It should be anotated with the `bson:"ac"` or whatever ACPath is set to. When a new object is created, the creator's identity should be passed to SetCreator bson tag "inline" should not be set
func (*AC) ClearAccessControl ¶
func (ac *AC) ClearAccessControl(refs ...Referencer)
func (AC) DeletePermitted ¶
func (ac AC) DeletePermitted(refs ...Referencer) bool
func (*AC) PermitDelete ¶
func (ac *AC) PermitDelete(refs ...Referencer)
func (*AC) PermitRead ¶
func (ac *AC) PermitRead(refs ...Referencer)
func (*AC) PermitUpdate ¶
func (ac *AC) PermitUpdate(refs ...Referencer)
func (AC) ReadPermitted ¶
func (ac AC) ReadPermitted(refs ...Referencer) bool
func (*AC) SetCreator ¶
func (AC) UpdatePermitted ¶
func (ac AC) UpdatePermitted(refs ...Referencer) bool
type Entity ¶
type Reference ¶
func DedupReferenceList ¶
DedupReferenceList takes a slice of Reference and returns a deduplicated slice using a new underlying array.
func FilterReferenceList ¶
type Referencer ¶
type Referencer interface {
Ref() Reference
}
Click to show internal directories.
Click to hide internal directories.