From f45e785da12aa482d3d0a18d650ed742419f5dc9 Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Fri, 23 Nov 2018 12:02:41 -0700 Subject: [PATCH] oputil.js user activate will now unlock accounts --- core/oputil/oputil_user.js | 49 ++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/core/oputil/oputil_user.js b/core/oputil/oputil_user.js index d1f21408..18519b06 100644 --- a/core/oputil/oputil_user.js +++ b/core/oputil/oputil_user.js @@ -8,25 +8,13 @@ const argv = require('./oputil_common.js').argv; const initConfigAndDatabases = require('./oputil_common.js').initConfigAndDatabases; const getHelpFor = require('./oputil_help.js').getHelpFor; const Errors = require('../enig_error.js').Errors; +const UserProps = require('../user_property.js'); const async = require('async'); const _ = require('lodash'); exports.handleUserCommand = handleUserCommand; -function getUser(userName, cb) { - const User = require('../../core/user.js'); - User.getUserIdAndName(userName, (err, userId) => { - if(err) { - process.exitCode = ExitCodes.BAD_ARGS; - return cb(err); - } - const u = new User(); - u.userId = userId; - return cb(null, u); - }); -} - function initAndGetUser(userName, cb) { async.waterfall( [ @@ -34,12 +22,12 @@ function initAndGetUser(userName, cb) { initConfigAndDatabases(callback); }, function getUserObject(callback) { - getUser(userName, (err, user) => { + const User = require('../../core/user.js'); + User.getUserIdAndName(userName, (err, userId) => { if(err) { - process.exitCode = ExitCodes.BAD_ARGS; return callback(err); } - return callback(null, user); + return User.getUser(userId, callback); }); } ], @@ -64,14 +52,29 @@ function setAccountStatus(user, status) { }[status]; const statusDesc = _.invert(AccountStatus)[status]; - user.persistProperty('account_status', status, err => { - if(err) { - process.exitCode = ExitCodes.ERROR; - console.error(err.message); - } else { - console.info(`User status set to ${statusDesc}`); + + async.series( + [ + (callback) => { + return user.persistProperty(UserProps.AccountStatus, status, callback); + }, + (callback) => { + if(AccountStatus.active !== status) { + return callback(null); + } + + return user.unlockAccount(callback); + } + ], + err => { + if(err) { + process.exitCode = ExitCodes.ERROR; + console.error(err.message); + } else { + console.info(`User status set to ${statusDesc}`); + } } - }); + ); } function setUserPassword(user) {