npm.io
0.1.2 • Published 3 years ago

accessctrl

Licence
MIT License
Version
0.1.2
Deps
6
Size
9 kB
Vulns
1
Weekly
0

AccessCtrl

AccessCtrl library to generate standard configuration based on the API resource comments to secure API access and also provide a method to verify that incoming request has the permission to access the resource or not.

License

MIT License

Features

  • ACL Configuration Generator
  • Resource level Access Verification

Installation

  npm i accessctrl --save

Usage/Examples

Generate Access configuration JSON
    /**
	 * @apiType POST
	 * @apiKey Create User
	 * @apiPath /api/i/user
	 * @apiGroup User
	 * @apiPermission admin
	 */
Parameter Description
@apiType Required. Methods GET, POST, PATCH, DELETE
@apipKey Unique Reference String
@apiPath Required. Resource Path
@apiGroup Required. Resource Group, unique Value
@apiPermission Required. comma seperated string e.g: admin,user,moderator
Usage
    const list = accessCtrl.generateACL({
        source: "server/**/*.routes.js"  //location of the routes/controller
    });
Output
  Generated Successfully
Verify JSON
Prerequisite

Need Role priority

  const rank = [
    { role: "user", priority: 3 },
    { role: "moderator", priority: 2 },
    { role: "admin", priority: 1 },
  ];
Parameter Description
userRole Required. ["user"]
requestPath Required. '/api/i/article"' Current request resource path
requestMethod Required. "POST" Current Request method
Usage
    const accessCtrl = require("accessctrl");
    const aclConfig = require("./acl.json");

    accessCtrl.initAcl(rank, aclConfig)
    const status = accessCtrl.verifyPermission( userRole, requestPath, requestMethod);
Output
  true/false