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(); }