This TypeORMAdapter (https://github.com/node-casbin/typeorm-adapter) supports FilteredAdapter however not sure why I'm getting below error : -
Error: filtered policies are not supported by this adapter
message:"filtered policies are not supported by this adapter"
stack:"Error: filtered policies are not supported by this adapter
at Enforcer.<anonymous> (/var/task/node_modules/casbin/lib/coreEnforcer.js:159:23)
at Generator.next (<anonymous>)
at /var/task/node_modules/casbin/lib/coreEnforcer.js:21:71
at new Promise (<anonymous>)
at /var/task/node_modules/casbin/lib/coreEnforcer.js:17:12
at Enforcer.loadFilteredPolicy (/var/task/node_modules/casbin/lib/coreEnforcer.js:153:16)
at /var/task/src/loadPermissions.js:35:24
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Runtime.handler (/var/task/index.js:15:22)"
__proto__:Object {constructor: , name: "Error", message: "", …}
Below is my code: -
'use-strict';
const { newEnforcer } = require('casbin');
const TypeORMAdapter = require('typeorm-adapter');
const { updateCache } = require('./cache-manager/cacheService');
const MODEL = process.env.MODEL || './enforcer/casbin_conf/model.conf';
const { join } = require('path');
module.exports.loadPermissions = async (event, context, callback, logger) => {
let key = null;
if (event.queryStringParameters && event.queryStringParameters.key) {
console.log("Received key: " + event.queryStringParameters.key);
key = event.queryStringParameters.key;
}
const a = await TypeORMAdapter.default.newAdapter({
type: 'mysql',
host: '192.168.1.5',
port: 3306,
username: 'root',
password: '',
database: 'casbin',
});
//a.enabledFiltered(true);
const e = await newEnforcer(join(__dirname, MODEL), a);
// Load the filtered policy from DB.
const fp = await e.loadFilteredPolicy({
'ptype': 'p',
'v0': 'alice'
});
const policies = { "v0": "p", "v1": "admin", "v2": "/*", "v3": "GET" }; //temp code only
return await updateCache(key, policies, logger);
};
I get error whenever I call this method loadFilteredPolicy(). Secondly, I would like to know why the method loadFilteredPolicy(filter) is getting called which is there on CoreEnforcer class. I want to invoke the loadFilteredPolicy(model, filter) which is there on TypeORMAdapter.
Please assist me here.
Thank you