KO
|
EN
gitlite — search
Search
#php
#java
#dotfiles
#android
#python
#hacktoberfest
#javascript
#ruby
#game
#go
#translation
#dotnet
casbin-mongodb-adapter
★ 267
Open GitHub ↗
MongoDB adapter for Casbin
Download README (.md)
Explore Similar Repositories
skywalking-client-js
:
Client-side JavaScript exception and tracing library for Apache SkyWalking APM.
compose-stable-marker
:
✒️ Compose stable markers for KMP to tell stable/immutable guarantees to the compose compiler.
AwesomeGithub
:
🔥Android Github客户端,基于组件化开发,支持账户密码与认证登陆。使用Kotlin语言进行开发,项目架构是基于JetPack&DataBinding的MVVM;项目中使用了Arouter、Retrofit、Coroutine、Glide、Dagger与Hilt等流行开源技术。
lam
:
:rocket: a lightweight, universal actor-model vm for writing scalable and reliable applications that run natively and on WebAssembly
trino-getting-started
:
No description available.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
casbin-mongodb-adapter
?
Download (.md)
MongoDB Adapter ==== [](https://github.com/apache/casbin-mongodb-adapter/actions/workflows/ci.yml) [](https://coveralls.io/github/apache/casbin-mongodb-adapter?branch=master) [](https://pkg.go.dev/github.com/apache/casbin-mongodb-adapter/v4) [](https://github.com/apache/casbin-mongodb-adapter/releases/latest) [](https://github.com/apache/casbin-mongodb-adapter/blob/master/LICENSE) [](https://discord.gg/S5UjpzGZjN) MongoDB Adapter is the [Mongo DB](https://www.mongodb.com) adapter for [Casbin](https://github.com/casbin/casbin). With this library, Casbin can load policy from MongoDB or save policy to it. ## Installation go get -u github.com/apache/casbin-mongodb-adapter/v4 ## Simple Example ```go package main import ( "github.com/casbin/casbin/v3" "github.com/apache/casbin-mongodb-adapter/v4" ) func main() { // Initialize a MongoDB 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. a,err := mongodbadapter.NewAdapter("127.0.0.1:27017") // Your MongoDB URL. if err != nil { panic(err) } // 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("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() } ``` ## Advanced Example ```go package main import ( "github.com/casbin/casbin/v3" "github.com/apache/casbin-mongodb-adapter/v4" mongooptions "go.mongodb.org/mongo-driver/mongo/options" ) func main() { // Initialize a MongoDB adapter with NewAdapterWithClientOption: // The adapter will use custom mongo client options. // custom database name. // default collection name 'casbin_rule'. mongoClientOption := mongooptions.Client().ApplyURI("mongodb://127.0.0.1:27017") databaseName := "casbin" a,err := mongodbadapter.NewAdapterWithClientOption(mongoClientOption, databaseName) // Or you can use NewAdapterWithCollectionName for custom collection name. if err != nil { panic(err) } 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 ```go import "github.com/globalsign/mgo/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 - [Casbin](https://github.com/casbin/casbin) ## License This project is under Apache 2.0 License. See the [LICENSE](LICENSE) file for the full license text.