accesscontrol-manager

1.5.1 • Public • Published

accesscontrol-manager

Build Status npm npm

Clean and verify all your CRUD operations in one place.

Requirements

Installation

npm install --save accesscontrol-manager

Usage

const AccesscontrolManager = require('accesscontrol-manager')({
  //...options
})

let data = AccesscontrolManager.read({
  acl: acl, //AccessControl object
  user: user,
  query: () => [QUERYDATA],
  isOwnerFunc: () => true,
  resource: 'Movie',
})

Methods

Method Description
.create(options) Call on creation
.read(options) Call on read
.update(options) Call on update
.delete(options) Call on delete

Options

Key Type Description Scope Example
resource String Name of resource all "Movie"
user Object Requesting entity (User in most cases) all -
acl AccessControl Scoped accesscontol object all acl.can('admin')
query Function Function that returns Promise/Array/Object from storage read/update/delete () => DB.fetch("...")
data Array/Object Data to be created/updated create/update -
isOwnerFunc Function(doc, user) Function that resolves ownership of document and returns true/false all (doc, user) => doc.owner === user.id
createFunc Function(data, meta) Function that creates the new document. data has been filtered by AccessControl. Meta contains information about ownership create (data, meta) => new Movie(data).save()
updateFunc Function(doc, data, meta) Function that updates the document. doc is the document that is beeing updated. data has been filtered by AccessControl. Meta contains information about ownership update (doc, data, meta) => { PartialUpate(doc, data); return doc.save() }
deleteFunc Function(doc, meta) Function that deletes the document. doc is the document that is beeing deleted. Meta contains information about ownership delete (doc, meta) => doc.remove()
transformFunc or preTransformFunc Function(data) Function that transforms the result before running it through the ACL filter all (data) => { data.someProp = 'test'; return data }
postTransformFunc Function(data) Function that transforms the result after running it through the ACL filter all (data) => { data.someProp = 'test'; return data }
documentPath String Selector(string) to extract data from query result. E.g. use this when working with pagination all docs

License

The MIT License Copyright (c) Carsten Jacobsen

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.5.1
    4
    • latest

Version History

Package Sidebar

Install

npm i accesscontrol-manager

Weekly Downloads

5

Version

1.5.1

License

MIT

Unpacked Size

37.1 kB

Total Files

31

Last publish

Collaborators

  • crsten