casbinpgadapter

package module
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2021 License: Apache-2.0 Imports: 9 Imported by: 2

README

Casbin Postgres Adapter

Casbin Postgres Adapter is the postgres adapter for Casbin

Installation

$ go get github.com/cychiuae/casbin-pg-adapter

Example

package main

import (
  "database/sql"
  "os"

  "github.com/casbin/casbin/v2"
  "github.com/cychiuae/casbin-pg-adapter"
)

func main() {
  connectionString := "postgresql://postgres:@localhost:5432/postgres?sslmode=disable"
  db, err := sql.Open("postgres", os.Getenv("DATABASE_URL"))
  if err != nil {
    panic(err)
  }

  tableName := "casbin"
  adapter, err := casbinpgadapter.NewAdapter(db, tableName)
  // If you are using db schema
  // myDBSchema := "mySchema"
  // adapter, err := casbinpgadapter.NewAdapterWithDBSchema(db, myDBSchema, tableName)
  if err != nil {
    panic(err)
  }

  enforcer, err := casbin.NewEnforcer("./examples/model.conf", adapter)
  if err != nil {
    panic(err)
  }

  // Load stored policy from database
  enforcer.LoadPolicy()

  // Do permission checking
  enforcer.Enforce("alice", "data1", "write")

  // Do some mutations
  enforcer.AddPolicy("alice", "data2", "write")
  enforcer.RemovePolicy("alice", "data1", "write")

  // Persist policy to database
  enforcer.SavePolicy()
}

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 is a postgresql adaptor for casbin

func NewAdapter

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

NewAdapter returns a new casbin postgresql adapter

func NewAdapterWithDBSchema added in v0.0.5

func NewAdapterWithDBSchema(db *sql.DB, dbSchema string, tableName string) (*Adapter, error)

NewAdapterWithDBSchema returns a new casbin postgresql adapter with the schema named dbSchema

func (*Adapter) AddPolicy

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

AddPolicy adds a policy rule to the storage. This is part of the Auto-Save feature.

func (*Adapter) LoadPolicy

func (adapter *Adapter) LoadPolicy(cmodel casbinModel.Model) error

LoadPolicy loads all policy rules from the storage.

func (*Adapter) RemoveFilteredPolicy

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

RemoveFilteredPolicy removes policy rules that match the filter from the storage. This is part of the Auto-Save feature.

func (*Adapter) RemovePolicy

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

RemovePolicy removes a policy rule from the storage. This is part of the Auto-Save feature.

func (*Adapter) SavePolicy

func (adapter *Adapter) SavePolicy(cmodel casbinModel.Model) error

SavePolicy saves all policy rules to the storage.

type FilteredAdapter added in v0.0.6

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

FilteredAdapter is the filtered file adapter for Casbin. It can load policy from file or save policy to file and supports loading of filtered policies.

func NewFilteredAdapter added in v0.0.6

func NewFilteredAdapter(db *sql.DB, tableName string) (*FilteredAdapter, error)

NewFilteredAdapter is the constructor for FilteredAdapter.

func NewFilteredAdapterWithDBSchema added in v0.0.6

func NewFilteredAdapterWithDBSchema(db *sql.DB, dbSchema string, tableName string) (*FilteredAdapter, error)

NewFilteredAdapterWithDBSchema return a pointer for FilteredAdapter which has schema dbSchema

func (*FilteredAdapter) IsFiltered added in v0.0.6

func (a *FilteredAdapter) IsFiltered() bool

IsFiltered returns true if the loaded policy has been filtered.

func (*FilteredAdapter) LoadFilteredPolicy added in v0.0.6

func (a *FilteredAdapter) LoadFilteredPolicy(mod casbinModel.Model, filter interface{}) error

LoadFilteredPolicy loads only policy rules that match the filter.

func (*FilteredAdapter) LoadPolicy added in v0.0.6

func (a *FilteredAdapter) LoadPolicy(model casbinModel.Model) error

LoadPolicy loads all policy rules from the storage.

func (*FilteredAdapter) SavePolicy added in v0.0.6

func (a *FilteredAdapter) SavePolicy(model casbinModel.Model) error

SavePolicy saves all policy rules to the storage.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

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