From ec2f02f4a06412218738cd94e6e91bae7f28ac48 Mon Sep 17 00:00:00 2001 From: Evgeny Golyshev Date: Sun, 29 Jul 2018 18:02:42 +0300 Subject: [PATCH] Check if TTY is invalid in encryption:encrypt-all and encryption:decrypt-all Signed-off-by: Evgeny Golyshev --- core/Command/Encryption/DecryptAll.php | 8 ++++++++ core/Command/Encryption/EncryptAll.php | 8 ++++++++ tests/Core/Command/Encryption/DecryptAllTest.php | 3 +++ tests/Core/Command/Encryption/EncryptAllTest.php | 3 +++ 4 files changed, 22 insertions(+) diff --git a/core/Command/Encryption/DecryptAll.php b/core/Command/Encryption/DecryptAll.php index 9931a279ff..253223f952 100644 --- a/core/Command/Encryption/DecryptAll.php +++ b/core/Command/Encryption/DecryptAll.php @@ -123,6 +123,14 @@ class DecryptAll extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { + if ( !$input->isInteractive() ) { + $output->writeln('Invalid TTY.'); + $output->writeln('If you are trying to execute the command in a Docker '); + $output->writeln("container, do not forget to execute 'docker exec' with"); + $output->writeln("the '-i' and '-t' options."); + $output->writeln(''); + return; + } try { if ($this->encryptionManager->isEnabled() === true) { diff --git a/core/Command/Encryption/EncryptAll.php b/core/Command/Encryption/EncryptAll.php index a2b5668332..b16fa0af2c 100644 --- a/core/Command/Encryption/EncryptAll.php +++ b/core/Command/Encryption/EncryptAll.php @@ -105,6 +105,14 @@ class EncryptAll extends Command { } protected function execute(InputInterface $input, OutputInterface $output) { + if ( !$input->isInteractive() ) { + $output->writeln('Invalid TTY.'); + $output->writeln('If you are trying to execute the command in a Docker '); + $output->writeln("container, do not forget to execute 'docker exec' with"); + $output->writeln("the '-i' and '-t' options."); + $output->writeln(''); + return; + } if ($this->encryptionManager->isEnabled() === false) { throw new \Exception('Server side encryption is not enabled'); diff --git a/tests/Core/Command/Encryption/DecryptAllTest.php b/tests/Core/Command/Encryption/DecryptAllTest.php index 1b01231ac5..c857286406 100644 --- a/tests/Core/Command/Encryption/DecryptAllTest.php +++ b/tests/Core/Command/Encryption/DecryptAllTest.php @@ -73,6 +73,9 @@ class DecryptAllTest extends TestCase { $this->decryptAll = $this->getMockBuilder(\OC\Encryption\DecryptAll::class) ->disableOriginalConstructor()->getMock(); $this->consoleInput = $this->getMockBuilder(InputInterface::class)->getMock(); + $this->consoleInput->expects($this->any()) + ->method('isInteractive') + ->willReturn(true); $this->consoleOutput = $this->getMockBuilder(OutputInterface::class)->getMock(); $this->config->expects($this->any()) diff --git a/tests/Core/Command/Encryption/EncryptAllTest.php b/tests/Core/Command/Encryption/EncryptAllTest.php index 554560a35b..ca7b264c98 100644 --- a/tests/Core/Command/Encryption/EncryptAllTest.php +++ b/tests/Core/Command/Encryption/EncryptAllTest.php @@ -78,6 +78,9 @@ class EncryptAllTest extends TestCase { ->disableOriginalConstructor() ->getMock(); $this->consoleInput = $this->getMockBuilder(InputInterface::class)->getMock(); + $this->consoleInput->expects($this->any()) + ->method('isInteractive') + ->willReturn(true); $this->consoleOutput = $this->getMockBuilder(OutputInterface::class)->getMock(); }