Documentation
¶
Index ¶
- Constants
- Variables
- func ToPermissionRN(v interface{}) []string
- type Builder
- func (b *Builder) ContextFunc(v ContextFunc) (r *Builder)
- func (b *Builder) CreatePolicies(ps ...*PolicyBuilder)
- func (b *Builder) DBPolicy(dpb *DBPolicyBuilder) (r *Builder)
- func (b *Builder) DeletePolicies(toDelete ...*PolicyBuilder)
- func (b *Builder) GetContextFunc() ContextFunc
- func (b *Builder) GetSubjectsFunc() SubjectsFunc
- func (b *Builder) LoadDBPoliciesToMemory(db *gorm.DB, startFrom *time.Time)
- func (b *Builder) Policies(ps ...*PolicyBuilder) (r *Builder)
- func (b *Builder) SubjectsFunc(v SubjectsFunc) (r *Builder)
- func (b *Builder) UpdateOrCreatePolicies(toUpdate ...*PolicyBuilder)
- func (b *Builder) UpdatePolicies(toUpdate ...*PolicyBuilder)
- type Conditions
- type Context
- type ContextFunc
- type DBPolicy
- type DBPolicyBuilder
- type DefaultDBPolicy
- type PathMatcher
- type PolicyBuilder
- func (b *PolicyBuilder) GetID() string
- func (b *PolicyBuilder) Given(conditions Conditions) (r *PolicyBuilder)
- func (b *PolicyBuilder) ID(id string) (r *PolicyBuilder)
- func (b *PolicyBuilder) Module(module string) (r *PolicyBuilder)
- func (b *PolicyBuilder) On(resources ...string) (r *PolicyBuilder)
- func (b *PolicyBuilder) ToDo(actions ...string) (r *PolicyBuilder)
- func (b *PolicyBuilder) WhoAre(effect string) (r *PolicyBuilder)
- type SubjectsFunc
- type Verifier
- func (b *Verifier) Do(v string) (r *Verifier)
- func (b *Verifier) From(v string) (r *Verifier)
- func (b *Verifier) Given(v ladon.Context) (r *Verifier)
- func (b *Verifier) IsAllowed() error
- func (b *Verifier) ObjectOn(v interface{}) (r *Verifier)
- func (b *Verifier) On(vs ...string) (r *Verifier)
- func (b *Verifier) RemoveOn(length int) (r *Verifier)
- func (b *Verifier) SnakeDo(actions ...string) (r *Verifier)
- func (b *Verifier) SnakeOn(vs ...string) (r *Verifier)
- func (b *Verifier) Spawn() (r *Verifier)
- func (b *Verifier) WithReq(v *http.Request) (r *Verifier)
Constants ¶
View Source
const ( Allowed = ladon.AllowAccess Denied = ladon.DenyAccess Anything = "*" Anybody = "*" Anonymous = "anonymous" )
Variables ¶
View Source
var PermissionDenied = errors.New("permission denied")
View Source
var Verbose = false
Functions ¶
func ToPermissionRN ¶
func ToPermissionRN(v interface{}) []string
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) ContextFunc ¶
func (b *Builder) ContextFunc(v ContextFunc) (r *Builder)
func (*Builder) CreatePolicies ¶
func (b *Builder) CreatePolicies(ps ...*PolicyBuilder)
func (*Builder) DBPolicy ¶
func (b *Builder) DBPolicy(dpb *DBPolicyBuilder) (r *Builder)
func (*Builder) DeletePolicies ¶
func (b *Builder) DeletePolicies(toDelete ...*PolicyBuilder)
func (*Builder) GetContextFunc ¶
func (b *Builder) GetContextFunc() ContextFunc
func (*Builder) GetSubjectsFunc ¶
func (b *Builder) GetSubjectsFunc() SubjectsFunc
func (*Builder) LoadDBPoliciesToMemory ¶
func (*Builder) Policies ¶
func (b *Builder) Policies(ps ...*PolicyBuilder) (r *Builder)
func (*Builder) SubjectsFunc ¶
func (b *Builder) SubjectsFunc(v SubjectsFunc) (r *Builder)
func (*Builder) UpdateOrCreatePolicies ¶
func (b *Builder) UpdateOrCreatePolicies(toUpdate ...*PolicyBuilder)
func (*Builder) UpdatePolicies ¶
func (b *Builder) UpdatePolicies(toUpdate ...*PolicyBuilder)
type Conditions ¶
type Conditions = ladon.Conditions
type ContextFunc ¶
type DBPolicy ¶
type DBPolicy interface {
LoadDBPolicies(db *gorm.DB, startFrom *time.Time) ([]*PolicyBuilder, []*PolicyBuilder)
}
type DBPolicyBuilder ¶
type DBPolicyBuilder struct {
// contains filtered or unexported fields
}
func NewDBPolicy ¶
func NewDBPolicy(db *gorm.DB) *DBPolicyBuilder
func (*DBPolicyBuilder) LoadFrequency ¶
func (dpb *DBPolicyBuilder) LoadFrequency(d time.Duration) *DBPolicyBuilder
func (*DBPolicyBuilder) Model ¶
func (dpb *DBPolicyBuilder) Model(m DBPolicy) *DBPolicyBuilder
type DefaultDBPolicy ¶
type DefaultDBPolicy struct { gorm.Model ReferID string Subject string Effect string Actions pq.StringArray `gorm:"type:text[]"` Resources pq.StringArray `gorm:"type:text[]"` }
func (DefaultDBPolicy) LoadDBPolicies ¶
func (p DefaultDBPolicy) LoadDBPolicies(db *gorm.DB, startFrom *time.Time) (toUpdateOrCreate []*PolicyBuilder, toDelete []*PolicyBuilder)
func (DefaultDBPolicy) ToPolicy ¶
func (p DefaultDBPolicy) ToPolicy() *PolicyBuilder
type PathMatcher ¶
type PathMatcher struct { }
type PolicyBuilder ¶
type PolicyBuilder struct {
// contains filtered or unexported fields
}
func PolicyFor ¶
func PolicyFor(subjects ...string) *PolicyBuilder
func (*PolicyBuilder) GetID ¶
func (b *PolicyBuilder) GetID() string
func (*PolicyBuilder) Given ¶
func (b *PolicyBuilder) Given(conditions Conditions) (r *PolicyBuilder)
func (*PolicyBuilder) ID ¶
func (b *PolicyBuilder) ID(id string) (r *PolicyBuilder)
func (*PolicyBuilder) Module ¶
func (b *PolicyBuilder) Module(module string) (r *PolicyBuilder)
func (*PolicyBuilder) On ¶
func (b *PolicyBuilder) On(resources ...string) (r *PolicyBuilder)
func (*PolicyBuilder) ToDo ¶
func (b *PolicyBuilder) ToDo(actions ...string) (r *PolicyBuilder)
func (*PolicyBuilder) WhoAre ¶
func (b *PolicyBuilder) WhoAre(effect string) (r *PolicyBuilder)
type SubjectsFunc ¶
Click to show internal directories.
Click to hide internal directories.