Skip to content

Commit

Permalink
token: fix otp for create and remove
Browse files Browse the repository at this point in the history
  • Loading branch information
zkat committed Mar 19, 2019
1 parent 656bce7 commit 6307465
Showing 1 changed file with 13 additions and 16 deletions.
29 changes: 13 additions & 16 deletions lib/token.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const npm = require('./npm.js')
const figgyPudding = require('figgy-pudding')
const npmConfig = require('./config/figgy-config.js')
const output = require('./utils/output.js')
const otplease = require('./utils/otplease.js')
const Table = require('cli-table3')
const Bluebird = require('bluebird')
const isCidrV4 = require('is-cidr').v4
Expand Down Expand Up @@ -80,6 +81,7 @@ function generateTokenIds (tokens, minLength) {
}

const TokenConfig = figgyPudding({
auth: {},
registry: {},
otp: {},
cidr: {},
Expand Down Expand Up @@ -185,13 +187,11 @@ function rm (args) {
}
})
return Bluebird.map(toRemove, (key) => {
return profile.removeToken(key, conf).catch((ex) => {
if (ex.code !== 'EOTP') throw ex
log.info('token', 'failed because revoking this token requires OTP')
return readUserInfo.otp().then((otp) => {
conf.auth.otp = otp
return profile.removeToken(key, conf)
})
return otplease(conf, conf => {
if (conf.otp) {
conf.auth.otp = conf.otp
}
return profile.removeToken(key, conf)
})
})
})).then(() => {
Expand All @@ -213,15 +213,12 @@ function create (args) {
const validCIDR = validateCIDRList(cidr)
return readUserInfo.password().then((password) => {
log.info('token', 'creating')
return profile.createToken(password, readonly, validCIDR, conf).catch((ex) => {
if (ex.code !== 'EOTP') throw ex
log.info('token', 'failed because it requires OTP')
return readUserInfo.otp().then((otp) => {
conf.auth.otp = otp
log.info('token', 'creating with OTP')
return pulseTillDone.withPromise(profile.createToken(password, readonly, validCIDR, conf))
})
})
return pulseTillDone.withPromise(otplease(conf, conf => {
if (conf.otp) {
conf.auth.otp = conf.otp
}
return profile.createToken(password, readonly, validCIDR, conf)
}))
}).then((result) => {
delete result.key
delete result.updated
Expand Down

0 comments on commit 6307465

Please sign in to comment.