RethinkDB Adapter is the Rethink DB adapter for Casbin. With this library, Casbin can load policy from RethinkDB or save policy to it.
go get github.com/adityapandey9/rethinkdb-adapter package main import ( "os" r "gopkg.in/gorethink/gorethink.v3" "github.com/casbin/casbin" "github.com/adityapandey9/rethinkdb-adapter" ) func getConnect() r.QueryExecutor { url := os.Getenv("RETHINKDB_URL") //Get the Rethinkdb url from system env if url == "" { url = "localhost:28015" } session, _ := r.Connect(r.ConnectOpts{ Address: url, }) return session } func main() { // Initialize a RethinkDB get session, add it to adapter and use it in a Casbin enforcer: // The adapter will use the database named "casbin". // If it doesn't exist, the adapter will create it automatically. (default names - Database: casbin, Table: rethinkdbpolicy) session := getConnect() a := rethinkadapter.NewAdapter(session) // Your RethinkDB Session. //Or you can do this a := rethinkadapter.NewAdapterDB(session, "database_name", "table_name") // Your RethinkDB Session. e := casbin.NewEnforcer("examples/casbinmodel.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 MIT License. See the LICENSE file for the full license text.