Implement casbin adapter for go-pg/pg
Go-pg Adapter is the Go-pg adapter for Casbin. With this library, Casbin can load policy from PostgreSQL or save policy to it.
go get github.com/MonedaCacao/casbin-pg-adapter
Populate .env with necessary environment variable values:
$ nano .env
DATABASE_ADDRESSES= DATABASE_USER_NAME= DATABSE_USER_PASSORD=
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() }
This project is under Apache 2.0 License. See the LICENSE file for the full license text.