1.0.0 • Published 8 months ago

mikropermit v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

MikroPermit

Ultra-lightweight permissions checking - literally check against an array of strings!

Build Status

codecov

When you're building systems you'll perhaps end up with needing some kind of permissions checking. Why make it harder than it is? MikroPermit is your friend:

  • Make checking permissions as easy as checking against an array of strings - bring your own "system"
  • Tiny (less than 300 bytes gzipped)
  • Zero dependencies
  • Has 100% test coverage — well, not a big deal given how small this is :)

Usage

Basic importing and usage

MikroPermit expects an array of strings that each will represent a "positive" permission, i.e. anything not provided will result in a denial.

// ES5 format
const { MikroPermit } = require('mikropermit');
// ES6 format
import { MikroPermit } from 'mikropermit';

const permissions = ['user.profile.get', 'settings.subscription.update'];

const permit = new MikroPermit(permissions);

permit.can('user.profile.get'); // True
permit.can('user.profile.update'); // False

Check that multiple permissions exist

const permissions = ['user.profile.get', 'settings.subscription.update'];

const permit = new MikroPermit(permissions);

permit.can(['user.profile.get', 'settings.subscription.update']); // True, multiple permissions and all exist
permit.can(['user.profile.get', 'user.profile.update']); // False, partial match means failure

Add permissions after initialization

const permit = new MikroPermit();
permit.setPermissions(permissions);

Check which permissions exist

const permit = new MikroPermit();
const result = permit.has(); // Returns the list of permissions

License

MIT. See LICENSE file.

1.0.0

8 months ago

0.0.1

8 months ago