Session Role Manager

Session Role Manager is the Session-based role manager for Casbin. With this library, Casbin can load session-based role hierarchy (user-role mapping) from Casbin policy or save role hierarchy to it. The session is only active in the specified time range.
Installation
go get github.com/casbin/session-role-manager
Simple Example
package main
import (
"github.com/casbin/casbin/v2"
fileadapter "github.com/casbin/casbin/v2/persist/file-adapter"
sessionrolemanager "github.com/casbin/session-role-manager"
)
func main() {
e, err := casbin.NewEnforcer("examples/rbac_model_with_sessions.conf")
if err != nil {
panic(err)
}
a := fileadapter.NewAdapter("examples/rbac_policy_with_sessions.csv")
e.SetAdapter(a)
rm := sessionrolemanager.NewRoleManager(10)
e.SetRoleManager(rm)
e.LoadPolicy()
e.Enforce("alice", "data1", "read", "1508503308708987131")
}
Getting Help
License
This project is under Apache 2.0 License. See the LICENSE file for the full license text.