Added a `CasbinMongoRule` to properly work with MongoDB (#18) * - Added a `CasbinMongoRule` to properly work with MongoDB - Added generic types for `CasbinRule | CasbinMongoRule` in adapter and methods to load the correct rule, depending on the connection type. * fixed typo
TypeORM Adapter is the TypeORM adapter for Node-Casbin. With this library, Node-Casbin can load policy from TypeORM supported database or save policy to it.
Based on Officially Supported Databases, the current supported databases are:
You may find other 3rd-party supported DBs in TypeORM website or other places.
npm install typeorm-adapter
import {Enforcer} from 'casbin'; import TypeORMAdapter from 'typeorm-adapter'; async function myFunction() { // Initialize a TypeORM adapter and use it in a Node-Casbin enforcer: // The adapter can not automatically create database. // But the adapter will automatically and use the table named "casbin_rule". // I think ORM should not automatically create databases. const a = await TypeORMAdapter.newAdapter({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: '', database: 'casbin', }); const e = await Enforcer.newEnforcer('examples/rbac_model.conf', a); // Load the policy from DB. await e.loadPolicy(); // Check the permission. e.enforce('alice', 'data1', 'read'); // Modify the policy. // await e.addPolicy(...); // await e.removePolicy(...); // Save the policy back to DB. await e.savePolicy(); }
This project is under Apache 2.0 License. See the LICENSE file for the full license text.