Server IP : 127.0.0.2 / Your IP : 18.217.0.242 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/npm/node_modules/npm-registry-client/lib/ |
Upload File : |
module.exports = adduser var url = require('url') var assert = require('assert') function adduser (uri, params, cb) { assert(typeof uri === 'string', 'must pass registry URI to adduser') assert( params && typeof params === 'object', 'must pass params to adduser' ) assert(typeof cb === 'function', 'must pass callback to adduser') assert(params.auth && typeof params.auth, 'must pass auth to adduser') var auth = params.auth assert(typeof auth.username === 'string', 'must include username in auth') assert(typeof auth.password === 'string', 'must include password in auth') assert(typeof auth.email === 'string', 'must include email in auth') // normalize registry URL if (uri.slice(-1) !== '/') uri += '/' var username = auth.username.trim() var password = auth.password.trim() var email = auth.email.trim() // validation if (!username) return cb(new Error('No username supplied.')) if (!password) return cb(new Error('No password supplied.')) if (!email) return cb(new Error('No email address supplied.')) if (!email.match(/^[^@]+@[^\.]+\.[^\.]+/)) { return cb(new Error('Please use a real email address.')) } var userobj = { _id: 'org.couchdb.user:' + username, name: username, password: password, email: email, type: 'user', roles: [], date: new Date().toISOString() } var token = this.config.couchToken if (this.couchLogin) this.couchLogin.token = null cb = done.call(this, token, cb) var logObj = Object.keys(userobj).map(function (k) { if (k === 'password') return [k, 'XXXXX'] return [k, userobj[k]] }).reduce(function (s, kv) { s[kv[0]] = kv[1] return s }, {}) this.log.verbose('adduser', 'before first PUT', logObj) var client = this uri = url.resolve(uri, '-/user/org.couchdb.user:' + encodeURIComponent(username)) var options = { method: 'PUT', body: userobj, auth: auth } this.request( uri, options, function (error, data, json, response) { if (!error || !response || response.statusCode !== 409) { return cb(error, data, json, response) } client.log.verbose('adduser', 'update existing user') return client.request( uri + '?write=true', { auth: auth }, function (er, data, json, response) { if (er || data.error) { return cb(er, data, json, response) } Object.keys(data).forEach(function (k) { if (!userobj[k] || k === 'roles') { userobj[k] = data[k] } }) client.log.verbose('adduser', 'userobj', logObj) client.request(uri + '/-rev/' + userobj._rev, options, cb) } ) } ) function done (token, cb) { return function (error, data, json, response) { if (!error && (!response || response.statusCode === 201)) { return cb(error, data, json, response) } // there was some kind of error, reinstate previous auth/token/etc. if (client.couchLogin) { client.couchLogin.token = token if (client.couchLogin.tokenSet) { client.couchLogin.tokenSet(token) } } client.log.verbose('adduser', 'back', [error, data, json]) if (!error) { error = new Error( (response && response.statusCode || '') + ' ' + 'Could not create user\n' + JSON.stringify(data) ) } if (response && (response.statusCode === 401 || response.statusCode === 403)) { client.log.warn('adduser', 'Incorrect username or password\n' + 'You can reset your account by visiting:\n' + '\n' + ' https://npmjs.org/forgot\n') } return cb(error) } } }