modulepackage
0.3.6
Repository: https://github.com/litixsoft/mongodb-adapter.git
Documentation: pkg.go.dev
# README
MongoDB Adapter

MongoDB Adapter is the Mongo DB adapter for Casbin. With this library, Casbin can load policy from MongoDB or save policy to it.
Note: This library use the official go-mongo-driver.
Installation
go get -u github.com/litixsoft/mongodb-adapter
Simple Example
package main
import (
"github.com/casbin/casbin/v2"
"github.com/litixsoft/mongodb-adapter"
)
func main() {
// Initialize a MongoDB adapter and use it in a Casbin enforcer:
// The adapter accept a mongodb uri string, a *mongo.Database or *mongo.Collection
// If no database given in uri string, the adapter will use the database named "casbin".
a := mongodbadapter.NewAdapter("mongodb://127.0.0.1:27017") // Your MongoDB URI.
// 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.
// a := mongodbadapter.NewAdapter("mongodb://127.0.0.1:27017/abc")
e, err := casbin.NewEnforcer("examples/rbac_model.conf", a)
if err != nil {
panic(err)
}
// 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()
}
Filtered Policies
import "go.mongodb.org/mongo-driver/bson"
// This adapter also implements the FilteredAdapter interface. This allows for
// efficent, scalable enforcement of very large policies:
filter := &bson.M{"v0": "alice"}
e.LoadFilteredPolicy(filter)
// The loaded policy is now a subset of the policy in storage, containing only
// the policy lines that match the provided filter. This filter should be a
// valid MongoDB selector using BSON. A filtered policy cannot be saved.
Getting Help
License
This project is under Apache 2.0 License. See the LICENSE file for the full license text.
# Functions
NewAdapter is the constructor for Adapter.
NewAdapterWithCollection is an alternative constructor for Adapter that does the same as NewAdapter, but uses *mongo.Collection instead of a Mongo URI.
NewAdapterWithDatabase is an alternative constructor for Adapter that does the same as NewAdapter, but uses *mongo.Database instead of a Mongo URI.
NewFilteredAdapter is the constructor for FilteredAdapter.
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
CasbinRule represents a rule in Casbin.