????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.191 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : 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, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/lib/node_modules/npm/lib/ |
Upload File : |
const log = require('npmlog')
const replaceInfo = require('./utils/replace-info.js')
const BaseCommand = require('./base-command.js')
const authTypes = {
legacy: require('./auth/legacy.js'),
oauth: require('./auth/oauth.js'),
saml: require('./auth/saml.js'),
sso: require('./auth/sso.js'),
}
class AddUser extends BaseCommand {
static get description () {
return 'Add a registry user account'
}
static get name () {
return 'adduser'
}
static get params () {
return [
'registry',
'scope',
]
}
exec (args, cb) {
this.adduser(args).then(() => cb()).catch(cb)
}
async adduser (args) {
const { scope } = this.npm.flatOptions
const registry = this.getRegistry(this.npm.flatOptions)
const auth = this.getAuthType(this.npm.flatOptions)
const creds = this.npm.config.getCredentialsByURI(registry)
log.disableProgress()
log.notice('', `Log in on ${replaceInfo(registry)}`)
const { message, newCreds } = await auth(this.npm, {
...this.npm.flatOptions,
creds,
registry,
scope,
})
await this.updateConfig({
newCreds,
registry,
scope,
})
this.npm.output(message)
}
getRegistry ({ scope, registry }) {
if (scope) {
const scopedRegistry = this.npm.config.get(`${scope}:registry`)
const cliRegistry = this.npm.config.get('registry', 'cli')
if (scopedRegistry && !cliRegistry)
return scopedRegistry
}
return registry
}
getAuthType ({ authType }) {
const type = authTypes[authType]
if (!type)
throw new Error('no such auth module')
return type
}
async updateConfig ({ newCreds, registry, scope }) {
this.npm.config.delete('_token', 'user') // prevent legacy pollution
this.npm.config.setCredentialsByURI(registry, newCreds)
if (scope)
this.npm.config.set(scope + ':registry', registry, 'user')
await this.npm.config.save('user')
}
}
module.exports = AddUser