UNPKG

@strapi/strapi

Version:

An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite

1 lines 5.5 kB
{"version":3,"file":"active-user.mjs","sources":["../../../../../src/cli/commands/admin/active-user.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { DistinctQuestion } from 'inquirer';\nimport { createCommand } from 'commander';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport type { StrapiCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\n\ninterface CmdOptions {\n email?: string;\n active?: string;\n}\n\ninterface Answers {\n email: string;\n active: string;\n}\n\nconst promptQuestions: ReadonlyArray<DistinctQuestion<Answers>> = [\n { type: 'input', name: 'email', message: 'User email?' },\n { type: 'input', name: 'active', message: 'User Active?' },\n];\n\nasync function setActive({ email, active }: CmdOptions) {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const cleanEmail = email?.trim().toLowerCase();\n const cleanActive = active?.trim().toLowerCase();\n\n if (cleanActive !== 'true' && cleanActive !== 'false') {\n console.error('Invalid active status. Use \"true\" or \"false\".');\n process.exit(1);\n }\n\n const isActive = cleanActive === 'true';\n\n const user = await app.admin.services.user.findOneByEmail(cleanEmail);\n\n if (!user) {\n console.error(`User with email \"${cleanEmail}\" does not exist`);\n process.exit(1);\n }\n\n try {\n await app.admin!.services.user.updateById(user.id, {\n isActive,\n });\n } catch (err: any) {\n console.error(err.message);\n process.exit(1);\n }\n\n console.log(`Successfully set ${cleanEmail} active status to ${cleanActive}`);\n process.exit(0);\n}\n\n/**\n * Change a user's active status\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n const { email, active } = cmdOptions;\n\n if (_.isEmpty(email) && _.isEmpty(active) && process.stdin.isTTY) {\n const inquirer = await getInquirer();\n const inquiry = await inquirer.prompt(promptQuestions);\n\n return setActive(inquiry);\n }\n\n if (_.isEmpty(email) || _.isEmpty(active)) {\n console.error('Missing required options `email` or `active`');\n process.exit(1);\n }\n\n return setActive({ email, active });\n};\n\n/**\n * `$ strapi admin:active-user`\n */\nconst command: StrapiCommand = () => {\n return createCommand('admin:active-user')\n .alias('admin:active')\n .description(\"Set a user's active status\")\n .option('-e, --email <email>', 'The user email')\n .option('-a, --active <true/false>', 'The user active status')\n .action(runAction('admin:active-user', action));\n};\n\nexport { action, command };\n"],"names":["promptQuestions","type","name","message","setActive","email","active","appContext","compileStrapi","app","createStrapi","load","cleanEmail","trim","toLowerCase","cleanActive","console","error","process","exit","isActive","user","admin","services","findOneByEmail","updateById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","command","createCommand","alias","description","option","runAction"],"mappings":"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"}