Refactor open() and createDatabase(), implement addPolicy() and removePolicy()
Sequelize Adapter is the Sequelize adapter for Node-Casbin. With this library, Node-Casbin can load policy from Sequelize 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 Sequelize website or other places.
npm install casbin-sequelize-adapter
import {Enforcer} from 'casbin'; import {SequelizeAdapter} from 'casbin-sequelize-adapter'; async function myFunction() { // Initialize a Sequelize adapter and use it in a Node-Casbin enforcer: // The adapter will use the MySQL database named "casbin". // If it doesn't exist, the adapter will create it automatically. const a = await SequelizeAdapter.newAdapter('mysql://root:123@localhost:3306/'); // Your connection string. // 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. // const a = await SequelizeAdapter.newAdapter('mysql://root:123@localhost:3306/abc'); 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.