perm

package
v3.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2024 License: MIT Imports: 18 Imported by: 11

Documentation

Index

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 New

func New() *Builder

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 (b *Builder) LoadDBPoliciesToMemory(db *gorm.DB, startFrom *time.Time)

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 Context

type Context = ladon.Context

type ContextFunc

type ContextFunc func(r *http.Request, objs []interface{}) Context

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 {
}

func (*PathMatcher) Matches

func (m *PathMatcher) Matches(p ladon.Policy, haystack []string, needle string) (bool, error)

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

type SubjectsFunc func(r *http.Request) []string

type Verifier

type Verifier struct {
	// contains filtered or unexported fields
}

func NewVerifier

func NewVerifier(module string, b *Builder) (r *Verifier)

func (*Verifier) Do

func (b *Verifier) Do(v string) (r *Verifier)

func (*Verifier) From

func (b *Verifier) From(v string) (r *Verifier)

func (*Verifier) Given

func (b *Verifier) Given(v ladon.Context) (r *Verifier)

func (*Verifier) IsAllowed

func (b *Verifier) IsAllowed() error

func (*Verifier) ObjectOn

func (b *Verifier) ObjectOn(v interface{}) (r *Verifier)

func (*Verifier) On

func (b *Verifier) On(vs ...string) (r *Verifier)

func (*Verifier) RemoveOn

func (b *Verifier) RemoveOn(length int) (r *Verifier)

func (*Verifier) SnakeDo

func (b *Verifier) SnakeDo(actions ...string) (r *Verifier)

SnakeDo convert string to snake form. e.g. "SnakeDo" -> "snake_do"

func (*Verifier) SnakeOn

func (b *Verifier) SnakeOn(vs ...string) (r *Verifier)

func (*Verifier) Spawn

func (b *Verifier) Spawn() (r *Verifier)

func (*Verifier) WithReq

func (b *Verifier) WithReq(v *http.Request) (r *Verifier)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL