AccessControl
The main structure managing entities and resources.
ac := permission.NewAccessControl()
CreateEntity(id string) *Entity- Creates a new entity.CreateResource(id string) *Resource- Creates a new resource.Allow(entity, resource, permission)- Grants permission to an entity for a resource.Deny(entity, resource, permission)- Revokes permission.Can(entity, resource, permission) bool- Checks permission.AddEntities(entities ...*Entity)- Adds multiple entities.AddResources(resources ...*Resource)- Adds multiple resources.
Example Usage
ac := permission.NewAccessControl()
user := ac.CreateEntity("user")
doc := ac.CreateResource("document")
ac.Allow(user, doc, permission.Read)
if ac.Can(user, doc, permission.Read) {
fmt.Println("User can read document.")
}