RQLite adapter for Casbin https://github.com/casbin/casbin
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
.gitignore
LICENSE
README.md
adapter.go

README.md

RQLite Adapter

GoDoc

This adapter is the RQLite adapter for Casbin. With this library, Casbin can load policies from RQLite databases or save policies to it which will then be distributed over the RQLite cluster.

Installation

go get github.com/edomosystems/rqlite-adapter

Simple Example

package main

import (
  "fmt"
  "github.com/casbin/casbin"
  "github.com/edomosystems/rqlite-adapter"
)

func main() {
  /* Specify the http api url your
  * rqlite node is listening on */
  adapter := rqliteadapter.NewAdapter("http://10.10.40.23:4001")

  enforcer := casbin.NewEnforcer("model.conf", adapter, false)

  enforcer.LoadPolicy()
  enforcer.EnableAutoSave(true)

  enforcer.AddRoleForUser("alice", "admin")
  enforcer.AddRoleForUser("bob", "guest")

  enforcer.AddPermissionForUser("admin", "file", "read")
  enforcer.AddPermissionForUser("admin", "file", "write")
  enforcer.AddPermissionForUser("guest", "file", "read")

  enforcer.Enforce("alice", "file", "read")    // -> True
  enforcer.Enforce("alice", "file", "write")   // -> True
  enforcer.Enforce("bob", "file", "read")      // -> True
  enforcer.Enforce("bob", "file", "write")     // -> False

  /* Simple role hirearchie */
  enforcer.AddRoleForUser("chalie", "interim")
  enforcer.AddRoleForUser("interim", "guest")  // interim inherits from guest

  enforcer.Enforce("charlie", "file", "read")  // -> True
  enforcer.Enforce("charlie", "file", "write") // -> False
}

Getting Help

License

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