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.")
}