Add support for scoped packages in blacklist URLs

This commit is contained in:
MICHAEL JACKSON
2017-11-14 16:47:57 -08:00
parent 4e31fd02cf
commit 36efac099f
4 changed files with 69 additions and 27 deletions

View File

@ -11,6 +11,7 @@ const parseURL = require('./middleware/parseURL')
const requireAuth = require('./middleware/requireAuth')
const serveFile = require('./middleware/serveFile')
const userToken = require('./middleware/userToken')
const validatePackageURL = require('./middleware/validatePackageURL')
morgan.token('fwd', function(req) {
return req.get('x-forwarded-for').replace(/\s/g, '')
@ -27,6 +28,12 @@ function errorHandler(err, req, res, next) {
next(err)
}
function createRouter(setup) {
const app = express.Router()
setup(app)
return app
}
function createServer() {
const app = express()
@ -61,20 +68,26 @@ function createServer() {
app.post('/_auth', require('./actions/createAuth'))
app.get('/_auth', require('./actions/showAuth'))
app.post(
app.use(
'/_blacklist',
requireAuth('blacklist.add'),
require('./actions/addToBlacklist')
)
app.get(
'/_blacklist',
requireAuth('blacklist.read'),
require('./actions/showBlacklist')
)
app.delete(
'/_blacklist/:packageName',
requireAuth('blacklist.remove'),
require('./actions/removeFromBlacklist')
createRouter(app => {
app.post(
'/',
requireAuth('blacklist.add'),
require('./actions/addToBlacklist')
)
app.get(
'/',
requireAuth('blacklist.read'),
require('./actions/showBlacklist')
)
app.delete(
/.*/,
requireAuth('blacklist.remove'),
validatePackageURL,
require('./actions/removeFromBlacklist')
)
})
)
if (process.env.NODE_ENV !== 'test') {