diff --git a/packages/server/lib/environment-helper.js b/packages/server/lib/environment-helper.js index 04d900a0..579a0375 100644 --- a/packages/server/lib/environment-helper.js +++ b/packages/server/lib/environment-helper.js @@ -13,9 +13,12 @@ function isRemoteWallet(crypto) { return process.env[`${crypto.cryptoCode}_WALLET_LOCATION`] === 'remote' } +const skip2fa = process.env.SKIP_2FA === 'true' + module.exports = { isDevMode, isProdMode, isRemoteNode, isRemoteWallet, + skip2fa, } diff --git a/packages/server/lib/graphql/resolvers.js b/packages/server/lib/graphql/resolvers.js index 433273b0..b400852f 100644 --- a/packages/server/lib/graphql/resolvers.js +++ b/packages/server/lib/graphql/resolvers.js @@ -1,3 +1,5 @@ +const { skip2fa } = require('../environment-helper') + const _ = require('lodash/fp') const nmd = require('nano-markdown') @@ -291,6 +293,7 @@ const dynamicConfig = ({ deviceId, operatorId, pid, pq, settings }) => { }), _.update('coins', _.map(setZeroConfLimit(settings.config))), + _.set('skip2fa', skip2fa), _.set('reboot', !!pid && state.reboots?.[operatorId]?.[deviceId] === pid), _.set( 'shutdown', diff --git a/packages/server/lib/graphql/types.js b/packages/server/lib/graphql/types.js index cca000b4..7e28cfd6 100644 --- a/packages/server/lib/graphql/types.js +++ b/packages/server/lib/graphql/types.js @@ -220,6 +220,7 @@ module.exports = gql` emptyUnit: Boolean! refillUnit: Boolean! diagnostics: Boolean! + skip2fa: Boolean! } type Configs { diff --git a/packages/server/lib/plugins.js b/packages/server/lib/plugins.js index c180f740..f92fce24 100644 --- a/packages/server/lib/plugins.js +++ b/packages/server/lib/plugins.js @@ -4,6 +4,8 @@ const pgp = require('pg-promise')() const { getTimezoneOffset } = require('date-fns-tz') const { millisecondsToMinutes } = require('date-fns/fp') +const { skip2fa } = require('./environment-helper') + const BN = require('./bn') const dbm = require('./postgresql_interface') const db = require('./db') @@ -961,6 +963,7 @@ function plugins(settings, deviceId) { sms: smsObj, } + if (skip2fa) return '123' return sms.sendMessage(settings, rec).then(() => code) }) }