@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 • 6.07 kB
Source Map (JSON)
{"version":3,"file":"delete-user.mjs","sources":["../../../../../src/cli/commands/admin/delete-user.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport { yup } from '@strapi/utils';\nimport _ from 'lodash';\nimport type { QuestionCollection } from 'inquirer';\nimport { createStrapi, compileStrapi } from '@strapi/core';\n\nimport { runAction } from '../../utils/helpers';\nimport { getInquirer } from '../../utils/get-inquirer';\nimport type { StrapiCommand } from '../../types';\n\ninterface CmdOptions {\n email?: string;\n}\n\nconst emailValidator = yup.string().email('Invalid email address').lowercase();\n\nconst adminDeleteSchema = yup.object().shape({\n email: emailValidator,\n});\n\ninterface Answers {\n email: string;\n confirm: boolean;\n}\n\n/**\n * Same as create-user: `QuestionCollection` so async `validate` matches Inquirer typings\n * (not `ReadonlyArray<DistinctQuestion<Answers>>`).\n */\nconst promptQuestions: QuestionCollection<Answers> = [\n {\n type: 'input',\n name: 'email',\n message: 'Admin email?',\n async validate(value: string) {\n const validEmail = await emailValidator.validate(value);\n return validEmail === value || validEmail;\n },\n },\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Do you really want to delete this admin?',\n },\n];\n\nasync function deleteAdmin({ email }: CmdOptions) {\n const appContext = await compileStrapi();\n const app = await createStrapi(appContext).load();\n\n const user = await app.admin.services.user.findOneByEmail(email);\n\n if (!user) {\n console.error(`User with email \"${email}\" does not exist`);\n process.exit(1);\n }\n\n try {\n await app.admin!.services.user.deleteById(user.id);\n } catch (err: any) {\n console.error(err.message);\n process.exit(1);\n }\n\n console.log(`Successfully deleted admin`);\n process.exit(0);\n}\n\n/**\n * Delete an admin user\n */\nconst action = async (cmdOptions: CmdOptions = {}) => {\n let { email } = cmdOptions;\n\n if (_.isEmpty(email) && process.stdin.isTTY) {\n const inquirer = await getInquirer();\n const inquiry = await inquirer.prompt(promptQuestions);\n\n if (!inquiry.confirm) {\n process.exit(0);\n }\n\n ({ email } = inquiry);\n }\n\n if (_.isEmpty(email)) {\n console.error('Missing required option `email`');\n process.exit(1);\n }\n\n try {\n await adminDeleteSchema.validate({ email });\n } catch (err) {\n if (err instanceof yup.ValidationError) {\n console.error(err.errors[0]);\n }\n\n process.exit(1);\n }\n\n return deleteAdmin({ email });\n};\n\n/**\n * `$ strapi admin:delete-user`\n */\nconst command: StrapiCommand = () => {\n return createCommand('admin:delete-user')\n .alias('admin:delete')\n .description('Delete an existing admin')\n .option('-e, --email <email>', 'Email of the current admin')\n .action(runAction('admin:delete-user', action));\n};\n\nexport { action, command };\n"],"names":["emailValidator","yup","string","email","lowercase","adminDeleteSchema","object","shape","promptQuestions","type","name","message","validate","value","validEmail","deleteAdmin","appContext","compileStrapi","app","createStrapi","load","user","admin","services","findOneByEmail","console","error","process","exit","deleteById","id","err","log","action","cmdOptions","_","isEmpty","stdin","isTTY","inquirer","getInquirer","inquiry","prompt","confirm","ValidationError","errors","command","createCommand","alias","description","option","runAction"],"mappings":"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"}