Rqlite Adapter Save

RQLite adapter for Casbin https://github.com/casbin/casbin

Project README

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.

Open Source Agenda is not affiliated with "Rqlite Adapter" Project. README Source: julisch94/rqlite-adapter
Stars
161
Open Issues
0
Last Commit
6 years ago
License

Open Source Agenda Badge

Open Source Agenda Rating