Skip to content

Commit

Permalink
removed auth
Browse files Browse the repository at this point in the history
  • Loading branch information
Michael Hayes committed Mar 29, 2014
1 parent 1b16c69 commit 6293a89
Show file tree
Hide file tree
Showing 30 changed files with 164 additions and 612 deletions.
65 changes: 29 additions & 36 deletions index.js
@@ -1,54 +1,47 @@
var SessionStore = require('./lib/models/SessionStore')
, packages = require('./lib/controllers/packages')
, auth = require('./lib/controllers/auth')
var controllers = require('./lib/controllers')
, handler = require('./lib/handler')
, logging = require('./lib/logging')
, ns = require('./lib/context').ns
, context = require('./lib/context')
, Router = require('unpm-router')
, http = require('http')

module.exports = setup

function setup(config) {
return ns.run(function(context) {
unpm.call(context, ns, config)
return context.ns.run(function(new_context) {
unpm.call(new_context, context.ns, config)
})
}

function unpm(ns, config) {
var router = Router(config.base_pathname)
, self = this

handler = ns.bind(handler)

this.sessions = config.sessions || SessionStore()
this.server = http.createServer(handler)
this.log = logging(config)
this.port = config.port || 8123
this.backend = config.backend
this.handler = handler
this.router = router
this.config = config
this.middleware = []

// auth
router.add('GET', routes.get_user, auth.user)
router.add('PUT', routes.register, auth.register)
router.add('PUT', routes.update_user, auth.update)
router.add('POST', routes.session, auth.sessions.create)

// packages
router.add('PUT', routes.publish, packages.publish)
router.add('GET', routes.get_tarball, packages.get_tarball)
router.add('GET', routes.get_package, packages.get_package)
}
self.server = http.createServer(handler)
self.log = logging(config)
self.port = config.port || 8123
self.handler = handler
self.get_context = {}
self.router = router
self.config = config
self.middleware = []
self.backend = {}

Object.keys(config.backend).forEach(function(key) {
self.backend[key] = function() {
var args = [].slice.call(arguments)

if(typeof args[args.length - 1] === 'function') {
args.push(ns.bind(args.pop()))
}

return config.backend[key].apply(self.backend, args)
}
})

var routes = {
index: '/'
, get_package: '/:name/:version?'
, get_user: '/-/user/org.couchdb.user:*'
, get_tarball: '/:name/-/*-*.tgz'
, publish: '/:name'
, session: '/_session'
, register: '/-/user/org.couchdb.user:*'
, update_user: '/-/user/org.couchdb.user:*/*'
router.add('PUT', '/:name', controllers.publish)
router.add('GET', '/:name/-/*-*.tgz', controllers.get_tarball)
router.add('GET', '/:name/:version?', controllers.get_package)
}
4 changes: 0 additions & 4 deletions lib/controllers/auth/index.js

This file was deleted.

26 changes: 0 additions & 26 deletions lib/controllers/auth/register.js

This file was deleted.

33 changes: 0 additions & 33 deletions lib/controllers/auth/sessions.js

This file was deleted.

35 changes: 0 additions & 35 deletions lib/controllers/auth/update.js

This file was deleted.

20 changes: 0 additions & 20 deletions lib/controllers/auth/user.js

This file was deleted.

@@ -1,12 +1,10 @@
var Package = require('../../models/Package')
, responses = require('../../responses')
, context = require('../../context')
var Package = require('../models/Package')
, path = require('path')
, url = require('url')

module.exports = get_package

function get_package(req, res, route, respond) {
function get_package(context, route, respond) {
var version = route.params.version
, name = route.params.name

Expand All @@ -17,14 +15,14 @@ function get_package(req, res, route, respond) {
Package.get_version_meta(name, version, return_meta)

function return_meta(err, meta) {
var base_url = url.format(context().host)
var base_url = url.format(context.host)

if(err) {
return respond(err)
}

if(!meta) {
return responses.not_found(req, res)
return respond.not_found()
}

Object.keys(meta.versions).forEach(function(version) {
Expand Down
@@ -1,15 +1,14 @@
var Package = require('../../models/Package')
, get_context = require('../../context')
var Package = require('../models/Package')

module.exports = get_tarball

function get_tarball(req, res, route) {
function get_tarball(context, route) {
var version = route.splats[1]
, name = route.splats[0]

Package.get_tarball(name, version)
.on('error', function(err) {
get_context().log.error(err)
context.log.error(err)
})
.pipe(res)
}
File renamed without changes.
@@ -1,22 +1,21 @@
var Package = require('../../models/Package')
, responses = require('../../responses')
, guard = require('../../utils/guard')
, load = require('../../utils/load')
var Package = require('../models/Package')
, guard = require('../utils/guard')
, load = require('../utils/load')

module.exports = publish

function publish(req, res, route, respond) {
function publish(context, route, respond) {
var data = []
, version

load(req, guard(get_versions, respond))
load(context.req, guard(get_versions, respond))

function get_versions(meta) {
var latest = meta['dist-tags'].latest

Package.get_versions(meta.name, function(err, versions) {
if(versions && versions.indexOf(latest) !== -1) {
return responses.conflict(req, res)
return respond.conflict()
}

Package.publish(meta, created)
Expand Down
61 changes: 25 additions & 36 deletions lib/handler.js
@@ -1,19 +1,26 @@
var run_middleware = require('./middleware')
, responses = require('./responses')
, context = require('./context')
, create_respond = require('./respond')
, get_context = require('./context')

module.exports = handler
module.exports = function(req, res) {
get_context.ns.run(function(context) {
handler(req, res)
})
}

function handler(req, res) {
var current_context = context()
, log = current_context.log
var context = get_context()

var route = current_context.router.match(req)
var respond = create_respond(req, res, context)
, route = context.router.match(req)
, log = context.log

res.on('finish', function() {
var auth = new Buffer('hunter2:hunter2').toString('base64')
if(req.headers.authorization) {
var auth = new Buffer('hunter2:hunter2').toString('base64')

req.headers.authorization = 'Basic ' + auth
req.headers.authorization = 'Basic ' + auth
}

var info = {
statusCode: res.statusCode
Expand All @@ -24,43 +31,25 @@ function handler(req, res) {
log.info(info)
})

context.req = req
context.res = res
context.route = route

if(!route) {
return responses.not_found(req, res)
return respond.not_found()
}

context.run(function(context) {
context.req = req
context.res = res
context.route = route

if(!context.middleware || !context.middleware.length) {
return run_route()
}
if(!context.middleware || !context.middleware.length) {
return run_route()
}

run_middleware(context, context.middleware, run_route)
})
run_middleware(context, context.middleware, run_route)

function run_route(err) {
if(err) {
return respond(err)
}

route.fn(req, res, route, respond)
}

function respond(err, status, data) {
if(err) {
log.error(err)

return responses.on_error(req, res, err)
}

try {
data = JSON.stringify(data)
} catch(err) {
return responses.on_error(req, res, err)
}

responses.json(req, res, status, data)
route.fn(context, route, respond)
}
}
9 changes: 2 additions & 7 deletions lib/models/Package.js
Expand Up @@ -14,14 +14,9 @@ Package.add = add

;['get_meta', 'set_meta', 'get_tarball', 'set_tarball'].forEach(function(key) {
Package[key] = function() {
var args = [].slice.call(arguments)
, backend = context().backend
var backend = context().backend

if(typeof args[args.length - 1] === 'function') {
args.push(context.ns.bind(args.pop()))
}

return backend[key].apply(backend, args)
return backend[key].apply(backend, arguments)
}
})

Expand Down

0 comments on commit 6293a89

Please sign in to comment.