Documentation
¶
Index ¶
- Variables
- func NewSchemaValidator() *validator.Validate
- type AttributeSchema
- type GlobalSchema
- type Model
- type PermissionSource
- type ResourceSchema
- func (resource ResourceSchema) GetAttributeSources(permission string) []PermissionSource
- func (resource ResourceSchema) GetPermissionSources(permission string) []PermissionSource
- func (resource ResourceSchema) GetRoleSources(permission string) []PermissionSource
- func (resource *ResourceSchema) Validate() error
- type RoleSchema
- type Schema
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidPermission = errors.New("invalid permission") ErrInvalidSchema = errors.New("invalid schema") ErrUnusedPermission = errors.New("unused permission") )
View Source
var ErrInvalidModel = errors.New("invalid model string")
Functions ¶
func NewSchemaValidator ¶
func NewSchemaValidator() *validator.Validate
Types ¶
type AttributeSchema ¶
type GlobalSchema ¶
type GlobalSchema struct { Permissions []string `hcl:"permissions" mod:"dive,trim,snake" validate:"unique,dive,required"` Roles []RoleSchema `hcl:"role,block" mod:"dive" validate:"unique=Name,dive,required"` Attributes []AttributeSchema `hcl:"attribute,block" mod:"dive" validate:"unique=Name,dive,required"` }
func (*GlobalSchema) Validate ¶
func (global *GlobalSchema) Validate() error
type Model ¶
type Model struct { Path string `validate:"required,validQualPath"` Name string `validate:"required,validName,validQualName"` }
func (*Model) UnmarshalText ¶
encoding.TextUnmarshaller.
type PermissionSource ¶
func GetAttributeSources ¶
func GetAttributeSources(permission string, attributes []AttributeSchema) []PermissionSource
func GetPermissionSources ¶
func GetPermissionSources(permission string, attributes []AttributeSchema, roles []RoleSchema) []PermissionSource
func GetRoleSources ¶
func GetRoleSources(permission string, roles []RoleSchema) []PermissionSource
type ResourceSchema ¶
type ResourceSchema struct { Name string `hcl:"name,label" mod:"trim,snake" validate:"required,validName,notReserved"` Model Model `hcl:"model" mod:"trim" validate:"required,dive"` Permissions []string `hcl:"permissions" mod:"dive,trim,snake" validate:"unique,dive,required"` Roles []RoleSchema `hcl:"role,block" mod:"dive" validate:"unique=Name,dive,required"` Attributes []AttributeSchema `hcl:"attribute,block" mod:"dive" validate:"unique=Name,dive,required"` }
func (ResourceSchema) GetAttributeSources ¶
func (resource ResourceSchema) GetAttributeSources(permission string) []PermissionSource
func (ResourceSchema) GetPermissionSources ¶
func (resource ResourceSchema) GetPermissionSources(permission string) []PermissionSource
GetPermissionSources returns all sources of a permission.
func (ResourceSchema) GetRoleSources ¶
func (resource ResourceSchema) GetRoleSources(permission string) []PermissionSource
func (*ResourceSchema) Validate ¶
func (resource *ResourceSchema) Validate() error
type RoleSchema ¶
type Schema ¶
type Schema struct { Actor Model `hcl:"actor,optional" validate:"required"` Resources []ResourceSchema `hcl:"resource,block" mod:"dive" validate:"required,unique=Model,unique=Name,dive"` Global GlobalSchema `hcl:"global,block" validate:"required,dive"` }
func LoadSchema ¶
func LoadSchemaFile ¶
func ReadSchemaFile ¶
Click to show internal directories.
Click to hide internal directories.