[TASK] Cleanup CLI commands in EXT:backend 47/51247/4
authorBenni Mack <benni@typo3.org>
Tue, 10 Jan 2017 20:38:40 +0000 (21:38 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Tue, 10 Jan 2017 22:02:14 +0000 (23:02 +0100)
* Make backend:unlock and backend:lock a separate class.
* Manually require the CLI user for ReferenceIndexUpdateCommand
* Cleanup the commands.php (as the "user" property is not evaluated anymore)

Resolves: #79261
Releases: master
Change-Id: Id3c90780de0dc299c07c5bca14dd4247b634d53c
Reviewed-on: https://review.typo3.org/51247
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/backend/Classes/Command/LockBackendCommand.php
typo3/sysext/backend/Classes/Command/ReferenceIndexUpdateCommand.php
typo3/sysext/backend/Classes/Command/UnlockBackendCommand.php [new file with mode: 0644]
typo3/sysext/backend/Configuration/Commands.php

index c24aa37..07d1748 100644 (file)
@@ -21,7 +21,7 @@ use Symfony\Component\Console\Style\SymfonyStyle;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
- * Core function for locking and unlocking the TYPO3 Backend
+ * Core function for locking the TYPO3 Backend
  */
 class LockBackendCommand extends Command
 {
  */
 class LockBackendCommand extends Command
 {
@@ -30,22 +30,18 @@ class LockBackendCommand extends Command
      */
     protected function configure()
     {
      */
     protected function configure()
     {
-        if ($this->getName() === 'backend:unlock') {
-            $this
-                ->setDescription('Unlock the TYPO3 Backend');
-        } else {
-            $this
-                ->setDescription('Lock the TYPO3 Backend')
-                ->addArgument(
-                    'redirect',
-                    InputArgument::OPTIONAL,
-                    'If set, then the TYPO3 Backend will redirect to the locking state (only used when locking the TYPO3 Backend'
-                );
-        }
+        $this
+            ->setDescription('Lock the TYPO3 Backend')
+            ->addArgument(
+                'redirect',
+                InputArgument::OPTIONAL,
+                'If set, then the TYPO3 Backend will redirect to the locking state (only used when locking the TYPO3 Backend'
+            );
     }
 
     /**
     }
 
     /**
-     * Executes the command for adding or removing the lock file
+     * Executes the command for adding the lock file
+     *
      * @param InputInterface $input
      * @param OutputInterface $output
      * @return void
      * @param InputInterface $input
      * @param OutputInterface $output
      * @return void
@@ -54,41 +50,6 @@ class LockBackendCommand extends Command
     {
         $io = new SymfonyStyle($input, $output);
         $io->title($this->getDescription());
     {
         $io = new SymfonyStyle($input, $output);
         $io->title($this->getDescription());
-        if ($this->getName() === 'backend:unlock') {
-            $this->unlock($io);
-        } else {
-            $this->lock($io, $input);
-        }
-    }
-
-    /**
-     * Unlock the TYPO3 Backend by removing the lock file
-     *
-     * @param SymfonyStyle $io
-     */
-    protected function unlock(SymfonyStyle $io)
-    {
-        $lockFile = $this->getLockFileName();
-        if (@is_file($lockFile)) {
-            unlink($lockFile);
-            if (@is_file($lockFile)) {
-                $io->caution('Could not remove lock file "' . $lockFile . '"!');
-            } else {
-                $io->success('Removed lock file "' . $lockFile . '".');
-            }
-        } else {
-            $io->note('No lock file "' . $lockFile . '" was found.' . LF . 'Hence no lock can be removed.');
-        }
-    }
-
-    /**
-     * Lock the TYPO3 Backend
-     *
-     * @param SymfonyStyle $io
-     * @param InputInterface $input
-     */
-    protected function lock(SymfonyStyle $io, InputInterface $input)
-    {
         $lockFile = $this->getLockFileName();
         if (@is_file($lockFile)) {
             $io->note('A lock file already exists. Overwriting it.');
         $lockFile = $this->getLockFileName();
         if (@is_file($lockFile)) {
             $io->note('A lock file already exists. Overwriting it.');
index 75be9a4..02fef2e 100644 (file)
@@ -18,6 +18,7 @@ use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputOption;
 use Symfony\Component\Console\Output\OutputInterface;
+use TYPO3\CMS\Core\Core\Bootstrap;
 use TYPO3\CMS\Core\Database\ReferenceIndex;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 use TYPO3\CMS\Core\Database\ReferenceIndex;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
@@ -49,6 +50,8 @@ class ReferenceIndexUpdateCommand extends Command
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
+        Bootstrap::getInstance()->initializeBackendAuthentication();
+
         $isTestOnly = $input->getOption('check');
         $isSilent = $output->getVerbosity() !== OutputInterface::VERBOSITY_QUIET;
 
         $isTestOnly = $input->getOption('check');
         $isSilent = $output->getVerbosity() !== OutputInterface::VERBOSITY_QUIET;
 
diff --git a/typo3/sysext/backend/Classes/Command/UnlockBackendCommand.php b/typo3/sysext/backend/Classes/Command/UnlockBackendCommand.php
new file mode 100644 (file)
index 0000000..71ae5fd
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+namespace TYPO3\CMS\Backend\Command;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+
+/**
+ * Core function for unlocking the TYPO3 Backend
+ */
+class UnlockBackendCommand extends Command
+{
+    /**
+     * Configure the command by defining the name, options and arguments
+     */
+    protected function configure()
+    {
+        $this->setDescription('Unlock the TYPO3 Backend');
+    }
+
+    /**
+     * Executes the command for removing the lock file
+     *
+     * @param InputInterface $input
+     * @param OutputInterface $output
+     * @return void
+     */
+    protected function execute(InputInterface $input, OutputInterface $output)
+    {
+        $io = new SymfonyStyle($input, $output);
+        $io->title($this->getDescription());
+        $lockFile = $this->getLockFileName();
+        if (@is_file($lockFile)) {
+            unlink($lockFile);
+            if (@is_file($lockFile)) {
+                $io->caution('Could not remove lock file "' . $lockFile . '"!');
+            } else {
+                $io->success('Removed lock file "' . $lockFile . '".');
+            }
+        } else {
+            $io->note('No lock file "' . $lockFile . '" was found.' . LF . 'Hence no lock can be removed.');
+        }
+    }
+
+    /**
+     * Location of the file name
+     *
+     * @return string
+     */
+    protected function getLockFileName()
+    {
+        return PATH_typo3conf . 'LOCK_BACKEND';
+    }
+}
index ef445b8..7a7a942 100644 (file)
@@ -3,8 +3,7 @@
  * Commands to be executed by typo3, where the key of the array
  * is the name of the command (to be called as the first argument after typo3).
  * Required parameter is the "class" of the command which needs to be a subclass
  * Commands to be executed by typo3, where the key of the array
  * is the name of the command (to be called as the first argument after typo3).
  * Required parameter is the "class" of the command which needs to be a subclass
- * of Symfony/Console/Command. An optional parameter is "user" that logs in
- * a Backend user via CLI.
+ * of Symfony/Console/Command.
  *
  * example: bin/typo3 backend:lock
  */
  *
  * example: bin/typo3 backend:lock
  */
@@ -13,10 +12,9 @@ return [
         'class' => \TYPO3\CMS\Backend\Command\LockBackendCommand::class
     ],
     'backend:unlock' => [
         'class' => \TYPO3\CMS\Backend\Command\LockBackendCommand::class
     ],
     'backend:unlock' => [
-        'class' => \TYPO3\CMS\Backend\Command\LockBackendCommand::class
+        'class' => \TYPO3\CMS\Backend\Command\UnlockBackendCommand::class
     ],
     'referenceindex:update' => [
     ],
     'referenceindex:update' => [
-        'class' => \TYPO3\CMS\Backend\Command\ReferenceIndexUpdateCommand::class,
-        'user' => '_cli_lowlevel'
+        'class' => \TYPO3\CMS\Backend\Command\ReferenceIndexUpdateCommand::class
     ]
 ];
     ]
 ];