Merge pull request #37 from Zxilly/master refactor: Migrate from Travis CI to GitHub Actions
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 { newEnforcer } 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 newEnforcer('examples/rbac_model.conf', a); // Load the policy from DB. await e.loadPolicy(); // Check the permission. await e.enforce('alice', 'data1', 'read'); // Modify the policy. // await e.addPolicy(...); // await e.removePolicy(...); // Save the policy back to DB. await e.savePolicy(); }
import { newEnforcer } 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 newEnforcer('examples/rbac_model.conf', a); // Load the filtered policy from DB. await e.loadFilteredPolicy({ 'ptype': 'p', 'v0': 'alice' }); // Check the permission. await 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.