18 use Symfony\Component\Console\Output\OutputInterface;
53 return 'commandLineBackendUserRemovalUpdate';
61 return 'Remove unneeded CLI backend users';
69 return 'The command line interface does not need to have custom _cli_* backend users anymore.'
70 .
' They can safely be deleted.';
80 $needsExecution =
false;
82 if (!empty($usersFound)) {
83 $needsExecution =
true;
85 return $needsExecution;
102 DatabaseUpdatedPrerequisite::class,
114 foreach ($usersFound as $userUid => $username) {
115 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(
'be_users');
116 $queryBuilder->update(
'be_users')
118 $queryBuilder->expr()->eq(
120 $queryBuilder->createNamedParameter($userUid, \PDO::PARAM_INT)
125 ->set(
'deleted', 1,
false)
128 $this->output->writeln(
'The following backend users have been deleted:');
129 foreach ($usersFound as $user) {
130 $this->output->writeln(
'* ' . $user);
142 $commandLineUsers = [];
144 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
145 ->getQueryBuilderForTable(
'be_users');
146 $queryBuilder->getRestrictions()
148 ->add(GeneralUtility::makeInstance(DeletedRestriction::class));
150 $result = $queryBuilder
151 ->select(
'uid',
'username')
155 'LOWER(username) LIKE \'_cli_%\'',
156 $queryBuilder->expr()->neq(
158 $queryBuilder->createNamedParameter(
'_cli_', \PDO::PARAM_STR)
163 while ($row = $result->fetch()) {
164 $commandLineUsers[$row[
'uid']] = $row[
'username'];
167 return $commandLineUsers;