casbinsqlserveradapter

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

README

casbin-sqlserver-adapter

Go Report Card Coverage Status PkgGoDev License

casbin-sqlserver-adapter is a Sqlx Adapter targeting github.com/denisenkom/go-mssqldb for Casbin V2.

With this library, Casbin can load policy lines from Sqlx supported databases or save policy lines.

Tested Databases

Installation

go get github.com/odwlts/casbin-sqlserver-adapter

Getting Help

License

This project is under Apache 2.0 License. See the LICENSE file for the full license text.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Adapter

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

Adapter define the sqlx adapter for Casbin. It can load policy lines or save policy lines from sqlx connected database.

func NewAdapter

func NewAdapter(db *sqlx.DB, schemaName, tableName string) (*Adapter, error)

NewAdapter the constructor for Adapter. db should connected to database and controlled by user. If tableName == "", the Adapter will automatically create a table named "casbin_rule".

func NewAdapterContext

func NewAdapterContext(ctx context.Context, db *sqlx.DB, schemaName, tableName string) (*Adapter, error)

NewAdapterContext the constructor for Adapter. db should connected to database and controlled by user. If tableName == "", the Adapter will automatically create a table named "casbin_rule".

func (*Adapter) AddPolicies

func (p *Adapter) AddPolicies(sec string, ptype string, rules [][]string) error

AddPolicies add multiple policy rules to the storage.

func (*Adapter) AddPolicy

func (p *Adapter) AddPolicy(sec string, ptype string, rule []string) error

AddPolicy add one policy rule to the storage.

func (*Adapter) IsFiltered

func (p *Adapter) IsFiltered() bool

IsFiltered returns true if the loaded policy rules has been filtered.

func (*Adapter) LoadFilteredPolicy

func (p *Adapter) LoadFilteredPolicy(model model.Model, filterPtr interface{}) error

LoadFilteredPolicy load policy rules that match the filter. filterPtr must be a pointer.

func (*Adapter) LoadPolicy

func (p *Adapter) LoadPolicy(model model.Model) error

LoadPolicy load all policy rules from the storage.

func (*Adapter) RemoveFilteredPolicy

func (p *Adapter) RemoveFilteredPolicy(sec string, ptype string, fieldIndex int, fieldValues ...string) error

RemoveFilteredPolicy remove policy rules that match the filter from the storage.

func (*Adapter) RemovePolicies

func (p *Adapter) RemovePolicies(sec string, ptype string, rules [][]string) (err error)

RemovePolicies remove policy rules.

func (*Adapter) RemovePolicy

func (p *Adapter) RemovePolicy(sec string, ptype string, rule []string) error

RemovePolicy remove policy rules from the storage.

func (*Adapter) SavePolicy

func (p *Adapter) SavePolicy(model model.Model) error

SavePolicy save policy rules to the storage.

func (*Adapter) UpdateFilteredPolicies

func (p *Adapter) UpdateFilteredPolicies(sec, ptype string, newPolicies [][]string, fieldIndex int, fieldValues ...string) (oldPolicies [][]string, err error)

UpdateFilteredPolicies deletes old rules and adds new rules.

func (*Adapter) UpdatePolicies

func (p *Adapter) UpdatePolicies(sec, ptype string, oldRules, newRules [][]string) (err error)

UpdatePolicies updates policy rules to storage.

func (*Adapter) UpdatePolicy

func (p *Adapter) UpdatePolicy(sec, ptype string, oldRule, newPolicy []string) error

UpdatePolicy update a policy rule from storage. This is part of the Auto-Save feature.

type CasbinRule

type CasbinRule struct {
	PType string `db:"p_type"`
	V0    string `db:"v0"`
	V1    string `db:"v1"`
	V2    string `db:"v2"`
	V3    string `db:"v3"`
	V4    string `db:"v4"`
	V5    string `db:"v5"`
}

CasbinRule defines the casbin rule model. It used for save or load policy lines from sqlx connected database.

type Filter

type Filter struct {
	PType []string
	V0    []string
	V1    []string
	V2    []string
	V3    []string
	V4    []string
	V5    []string
}

Filter defines the filtering rules for a FilteredAdapter's policy. Empty values are ignored, but all others must match the filter.

type IncludeExcludeFilter

type IncludeExcludeFilter struct {
	PTypeInclude []string
	PTypeExclude []string
	V0Include    []string
	V0Exclude    []string
	V1Include    []string
	V1Exclude    []string
	V2Include    []string
	V2Exclude    []string
	V3Include    []string
	V3Exclude    []string
	V4Include    []string
	V4Exclude    []string
	V5Include    []string
	V5Exclude    []string
}

V0IncludeV2ExcludeFilter defines the filtering include and exclude rules for a FilteredAdapter's policy.

Jump to

Keyboard shortcuts

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