setDescription(__d('cake_d_c/users', 'Delete a specific user')); } /** * Implement this method with your command's logic. * * @param \Cake\Console\Arguments $args The command arguments. * @param \Cake\Console\ConsoleIo $io The console io * @return int|null|void The exit code or null for success */ public function execute(Arguments $args, ConsoleIo $io) { $username = $args->getArgumentAt(0); if (empty($username)) { $io->abort(__d('cake_d_c/users', 'Please enter a username.')); } /** * @var \CakeDC\Users\Model\Table\UsersTable $UsersTable */ $UsersTable = $this->getTableLocator()->get('Users'); /** * @var \Cake\Datasource\EntityInterface $user */ $user = $UsersTable->find()->where(['username' => $username])->firstOrFail(); if (isset($UsersTable->SocialAccounts)) { $UsersTable->SocialAccounts->deleteAll(['user_id' => $user->id]); } $deleteUser = $UsersTable->delete($user); if (!$deleteUser) { $io->abort(__d('cake_d_c/users', 'The user {0} was not deleted. Please try again', $username)); } $io->out(__d('cake_d_c/users', 'The user {0} was deleted successfully', $username)); } /** * @inheritDoc */ public static function defaultName(): string { return 'users delete_user'; } }