Skip to content
A go-pg adapter for casbin
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Implement casbin adapter for go-pg/pg Aug 23, 2019
examples Implement casbin adapter for go-pg/pg Aug 23, 2019
pgexample Implement casbin adapter for go-pg/pg Aug 23, 2019
.gitignore
LICENSE
README.md Implement casbin adapter for go-pg/pg Aug 23, 2019
adapter.go Implement casbin adapter for go-pg/pg Aug 23, 2019
adapter_test.go Implement casbin adapter for go-pg/pg Aug 23, 2019
env-sample.txt Implement casbin adapter for go-pg/pg Aug 23, 2019
go.mod Implement casbin adapter for go-pg/pg Aug 23, 2019
go.sum Implement casbin adapter for go-pg/pg Aug 23, 2019

README.md

Go-pg Adapter

Go-pg Adapter is the Go-pg adapter for Casbin. With this library, Casbin can load policy from PostgreSQL or save policy to it.

Installation

go get github.com/MonedaCacao/casbin-pg-adapter

Env Variables

Populate .env with necessary environment variable values:

$ nano .env
DATABASE_ADDRESSES=
DATABASE_USER_NAME=
DATABSE_USER_PASSORD=

Simple Postgres Example

package main

import (
	pgadapter "github.com/MonedaCacao/casbin-pg-adapter"
	"github.com/casbin/casbin"
)

func main() {
	// Initialize a Go-pg adapter and use it in a Casbin enforcer:
	// The adapter will use the Postgres database named "casbin".
	// If it doesn't exist, the adapter will create it automatically.
	a, _ := pgadapter.NewAdapter() // Your driver and data source.

	// Or you can use an existing DB "abc" like this:
	// The adapter will use the table named "casbin_rule".
	// If it doesn't exist, the adapter will create it automatically.

	e := casbin.NewEnforcer("examples/rbac_model.conf", a)

	// Load the policy from DB.
	e.LoadPolicy()

	// Check the permission.
	e.Enforce("alice", "data1", "read")

	// Modify the policy.
	// e.AddPolicy(...)
	// e.RemovePolicy(...)

	// Save the policy back to DB.
	e.SavePolicy()
}

Getting Help

License

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

You can’t perform that action at this time.