0.1.1 • Published 4 years ago

casbin-basic-adapter2 v0.1.1

Weekly downloads
10
License
-
Repository
-
Last release
4 years ago

fork reason

修复警告

Use async .hasTable to check if table exists and then use plain .createTable. Since .createTableIfNotExists actually just generates plain "CREATE TABLE IF NOT EXIST..." query it will not work correctly if there are any alter table queries generated for columns afterwards. To not break old migrations this function is left untouched for now, but it should not be used when writing new code and it is removed from documentation.

Basic Adapter

NPM version NPM download Build Status

Basic Adapter is a basic drives adapter for Node-Casbin supports pg, sqlite3, mysql, mysql2, oracledb and mssql. With this library, Node-Casbin can load policy from supported drives or save policy to it.

Drives

we currently supports the following SQL drives:

  • pg
  • mysql
  • mysql2
  • sqlite3
  • oracledb
  • mssql

Installation

npm i casbin-basic-adapter

Simple Example

import { newEnforcer } from 'casbin';
import { Client } from 'pg';
import { BasicAdapter } from 'casbin-basic-adapter';

async function myFunction() {
  // Initialize a Basic 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".
  const a = await BasicAdapter.newAdapter('pg',
    new Client({
      user: 'postgres',
      database: 'postgres',
      password: 'postgres',
    }));

  const e = await newEnforcer('examples/rbac_model.conf', a);

  // 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();

Getting Help

License

This project is under Apache 2.0 License. See the LICENSE file for the full license text.