https://github.com/wrannaman/patrolman
Controller level middleware for express
https://github.com/wrannaman/patrolman
Last synced: 11 days ago
JSON representation
Controller level middleware for express
- Host: GitHub
- URL: https://github.com/wrannaman/patrolman
- Owner: wrannaman
- License: mit
- Created: 2016-12-02T01:33:26.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-20T00:16:44.000Z (over 8 years ago)
- Last Synced: 2025-02-28T16:00:40.619Z (8 months ago)
- Language: JavaScript
- Size: 2.93 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PatrolMan
A controller level middleware for express.
Example:
Use top level routes as naming convention so in the example below all /listing/* routes will be covered based on controller level policies.
"*" applies to all routes within that top level ( eg /listing )
the object's key is the name of the controller function
'''
// config.js
const Policies = require('./index');module.exports = {
"listing": {
"*" : [Policies.isLoggedIn],
"get": [Policies.canGet],
"create": [Policies.isCoolEnough, Policies.isPrettyGirl],
},
"match": {
"*" : [Policies.isLoggedIn],
}
}'''
Then in your controller instantiate a new PatrolMan object and feed it the path to your above config file.
'''
let PatrolMan = require('../police');
PatrolMan = new PatrolMan(require('../policies/config'));const ListingController = {
get: function(req,res,next){
// whatever
},
create: function(req,res,next){
// whatever
}
}// pass top level route again and the controller instance
module.exports = PatrolMan.patrol("listing", ListingController)
'''That's it!.