esgt-access-control
TypeScript icon, indicating that this package has built-in type declarations

0.0.8 • Public • Published

package-accesscontrol

AccessControl package in typescript with tests

install

yarn add esgt-access-control or npm i esgt-access-control --save

Types

ACGrants {
  // [env]: boolean
  [key: string]: boolean;
}
ACPermissions {
  // [job] : envs
  [key: string]: ACGrants;
}
ACRoles {
  //[role] : jobs
  [key: string] : ACPermissions;
}

Data example

const rolesObj = {
  User: {
    GetUsers: {
      dev: true,
      staging: false,
      prod: false,
    }
  }
}

API:

Setting roles

const ac = new AccessControl(rolesObj); // constructor

or

ac.setRoles(rolesObj); // any time

Checking permissions (boolean)

ac.does(`${role}`).havePermission(`${permission}`).for(`${stage}`);

Granting permission (void)

ac.grant(`${role}`).permission(`${permission}`).for(`${stage[]}`);

Denying permission (void)

ac.deny(`${role}`).permission(`${permission}`).for(`${stage[]}`);

Extending permission (void)

ac.allow(`${role}`).toExtend(`${role2}`);

Removing role (void)

ac.remove(`${role}`);

Retrieving roles obj (ACRoles)

ac.getRoles();

Retrieving roles list (string[])

ac.getRolesList();

Retrieving permissions for role (ACPermissions)

ac.getPermissions(role: string);

CHANGE LOG

version 0.0.6

```
  - Fixed bug with adding new roles via 'grant';
  - Added todo.md;
  - Fixed log from being displayed on internal requests;
  - Updated internal request to 'getRoles' to be flagged as interal;
```

version 0.0.7

```
  - Extended 'allow.toExtend' functionality to create new role when extending from existent role;
  - Updated tests for the new feature;
```

`version 0.0.8`

```
  - Fixed types missing in package;
```

Readme

Keywords

none

Package Sidebar

Install

npm i esgt-access-control

Weekly Downloads

10

Version

0.0.8

License

none

Unpacked Size

81.7 kB

Total Files

54

Last publish

Collaborators

  • cainaleao