š Simple library that supports access control models like ACL, RBAC, ABAC in Frontend Javascript
npm install @diaskappassov/casbin-jsš Simple library that supports access control models like ACL, RBAC, ABAC in Frontend Javascript.
Changelogs here.
See more about casbin here.
```
npm i @diaskappassov/casbin-js
You can see all usage examples in examples directory.
- vanilla typescript example
- react typescript example
To understand what the model and policy read https://casbin.org/docs/syntax-for-models/
`ts
import { CAuthorizer } from "@diaskappassov/casbin-js";
const model =
;const policy = [
["p", "cat", "walk", "ground"],
["p", "cat", "run", "ground"],
["p", "cat", "swim", "water"],
["p", "cat", "breathe", "air"],
["p", "bird", "fly", "air"],
["p", "bird", "breathe", "air"],
["p", "bird", "walk", "ground"],
["p", "fish", "swim", "water"],
["p", "fish", "breathe", "water"],
];
const Authorizer = new CAuthorizer();
Authorizer.init(model, policy);
`$3
You can check permissions with
can, canAll, canAny methods, but before that YOU MUST INITIALIZE Authorizer.> [!IMPORTANT]
> The order of your request elements must follow the rules which you set in
model. See more: https://casbin.org/docs/syntax-for-models#request-definition#### Check permissions with
can method> [!WARNING]
> If the
Authorizer is not initialized it throws error`ts
await Authorizer.can(["fish", "fly", "air"]); // false
await Authorizer.can(["fish", "swim", "ground"]); // false
await Authorizer.can(["fish", "swim", "water"]); // true
await Authorizer.can(["cat", "swim", "water"]); // true
await Authorizer.can(["bird", "run", "ground"]); // false
await Authorizer.can(["cat", "run", "ground"]); // true
`#### Check permissions with
canAll method`ts
// returns false cause one of conditions returned false
await Authorizer.canAll([
["cat", "breathe", "air"],
["fish", "breathe", "air"],
]);// returns
true cause all conditions returned true
await Authorizer.canAll([
["cat", "breathe", "air"],
["bird", "breathe", "air"],
]);
`#### Check permissions with
canAny method`ts
// returns true cause one of conditions returned true
await authorizer.canAny([
["cat", "breathe", "air"],
["fish", "breathe", "air"],
]);// returns
false cause all conditions returned false
await authorizer.canAny([
["cat", "fly", "air"],
["fish", "fly", "air"],
]);
``