UNPKG

@teqed/interact-ibmi

Version:

Menus for interacting with IBMi AS400 using node-odbc.

49 lines (48 loc) 1.95 kB
import chalk from 'chalk'; import ora from 'ora'; import { sleep } from '../../../util.js'; import findUsers, { foundUsers } from '../../../util/find-users.js'; import CHGUSRPRF from '../../../util/qcmdexc/chgusrprf.js'; import QCMDEXC from '../../../util/qcmdexc/qcmdexc.js'; import { generatedSelectMenu, genericPressEnterPrompt } from '../../generic/generic.js'; const pickDisabledUser = async function () { const spinner = ora(`Checking...`).start(); // eslint-disable-next-line no-unmodified-loop-condition while (foundUsers === undefined) { // eslint-disable-next-line no-await-in-loop await sleep(100); } // Create an array of user ids that are disabled. const usersDisabled = foundUsers .filter(user => user.NETSERVER_DISABLED === `YES`) .map(user => user.AUTHORIZATION_NAME); if (usersDisabled.length > 0) { spinner.succeed(`Disabled Netserver users found!`); const pickUserMenuChoice = await generatedSelectMenu({ choices: usersDisabled, message: ` Select a disabled Netserver user from the list below. `, }); return pickUserMenuChoice; } spinner.succeed(`No disabled Netserver users found.`); await genericPressEnterPrompt(); return ``; }; export default async function () { const enableThisUser = await pickDisabledUser(); if (enableThisUser.length > 0) { // ! This is the wrong command. // TODO: Find the correct command to re-enable a Netserver user. await QCMDEXC(CHGUSRPRF({ STATUS: `*ENABLED`, USRPRF: enableThisUser })) .then(() => { console.log(chalk.green(`User ${enableThisUser} has been re-enabled for Netserver.`)); }) .catch(error => { console.log(error); console.log(chalk.yellow(`User ${enableThisUser} has not been re-enabled for Netserver.`)); }); } void findUsers(); }