Socket
Book a DemoInstallSign in
Socket

path-roles

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

path-roles

A strategy for declaring authorization rules in the form of a path, HTTP verbs, and roles.

latest
npmnpm
Version
0.2.1
Version published
Maintainers
1
Created
Source

Path Roles

A strategy for declaring authorization rules in the form of a path, HTTP verbs, and roles.

Usage

Declaration of rules is in the form of an array of arrays, with each item in the main array being an array with a three items: a path, verbs, and roles.

A path is a string that will be converted to a regexp by path-to-regexp.

Verbs are declared as a comma-separated string.

Roles are also declared as a comma-separated string.

Declare rules in order of more specific to less specific. Roles will be returned for the first rule that matches.

If no rules match, an error will be thrown. This is intended to prevent having a route that doesn't have an explicitly declared rule.

var lookupFactory = require('path-roles')

var Rules = [
  ['/api/items','GET','user,admin'],
  ['/api/items','POST','admin'],
  ['/api/(.*)','*','guest,user,admin']
]

var lookup = lookupFactory(Rules)

lookup('/api/items','GET')
// ['user','admin']

Implementation Example (Express)

app.use(function (req,res,next) {
  if ( lookup(req.originalUrl,req.method).includes(session.role) ) {
    next()
  }
  else {
    throw new Error('unauthorized')
  }
})

FAQs

Package last updated on 11 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts