diff options
Diffstat (limited to 'deps/npm/node_modules/npm-registry-client/lib/adduser.js')
-rw-r--r-- | deps/npm/node_modules/npm-registry-client/lib/adduser.js | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/deps/npm/node_modules/npm-registry-client/lib/adduser.js b/deps/npm/node_modules/npm-registry-client/lib/adduser.js index 5a76b028c0..d1fcac8e91 100644 --- a/deps/npm/node_modules/npm-registry-client/lib/adduser.js +++ b/deps/npm/node_modules/npm-registry-client/lib/adduser.js @@ -1,6 +1,12 @@ module.exports = adduser -function adduser (username, password, email, cb) { +var url = require("url") + +function adduser (base, username, password, email, cb) { + if (!base) return cb(new Error("Required base URI not supplied")) + + username = ("" + (username || "")).trim() + if (!username) return cb(new Error("No username supplied.")) password = ("" + (password || "")).trim() if (!password) return cb(new Error("No password supplied.")) @@ -48,9 +54,10 @@ function adduser (username, password, email, cb) { this.log.verbose("adduser", "before first PUT", logObj) + var uri = url.resolve(base, '/-/user/org.couchdb.user:' + encodeURIComponent(username)) this.request('PUT' - , '/-/user/org.couchdb.user:'+encodeURIComponent(username) - , userobj + , uri + , { body : userobj } , function (error, data, json, response) { // if it worked, then we just created a new user, and all is well. // but if we're updating a current record, then it'll 409 first @@ -69,8 +76,8 @@ function adduser (username, password, email, cb) { this.log.verbose("adduser", "update existing user") return this.request('GET' - , '/-/user/org.couchdb.user:'+encodeURIComponent(username) + - '?write=true' + , uri + '?write=true' + , null , function (er, data, json, response) { if (er || data.error) { return cb(er, data, json, response) @@ -82,10 +89,9 @@ function adduser (username, password, email, cb) { }) this.log.verbose("adduser", "userobj", logObj) this.request('PUT' - , '/-/user/org.couchdb.user:'+encodeURIComponent(username) - + "/-rev/" + userobj._rev - , userobj - , cb ) + , uri + "/-rev/" + userobj._rev + , { body : userobj } + , cb) }.bind(this)) }.bind(this)) } |