From b3353dd69c128e851b998c4f5909f229d9f8849e Mon Sep 17 00:00:00 2001 From: "pastripodi@owncloud.com" Date: Mon, 11 Nov 2019 10:50:45 +0100 Subject: [PATCH] Fix for app:enable in case of not valid/not existing enterprise key --- core/Command/App/Enable.php | 19 ++++++++++++++++++- core/register_command.php | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/core/Command/App/Enable.php b/core/Command/App/Enable.php index dc396329bcda..37b0e984fb5b 100644 --- a/core/Command/App/Enable.php +++ b/core/Command/App/Enable.php @@ -24,6 +24,7 @@ namespace OC\Core\Command\App; +use OCP\IConfig; use OCP\App\IAppManager; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; @@ -36,12 +37,17 @@ class Enable extends Command { /** @var IAppManager */ protected $manager; + /** @var IConfig */ + protected $config; + /** * @param IAppManager $manager + * @param IConfig $config */ - public function __construct(IAppManager $manager) { + public function __construct(IAppManager $manager, IConfig $config) { parent::__construct(); $this->manager = $manager; + $this->config = $config; } protected function configure() { @@ -71,10 +77,21 @@ protected function execute(InputInterface $input, OutputInterface $output) { } $groups = $input->getOption('groups'); + if (\OC_App::isEnabled('enterprise_key')) { + $key = new \OCA\Enterprise_Key\EnterpriseKey(false, $this->config); + } if (empty($groups)) { + if ($key && !$key->isValid()) { + $output->writeln($appId . ' cannot be enabled because of invalid enteprise key'); + return 1; + } \OC_App::enable($appId); $output->writeln($appId . ' enabled'); } else { + if ($key && !$key->isValid()) { + $output->writeln($appId . ' cannot be enabled because of invalid enteprise key'); + return 1; + } \OC_App::enable($appId, $groups); $output->writeln($appId . ' enabled for groups: ' . \implode(', ', $groups)); } diff --git a/core/register_command.php b/core/register_command.php index 132c039c654f..c7006bb50897 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -59,7 +59,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) { $application->add(new OC\Core\Command\App\Disable(\OC::$server->getAppManager())); - $application->add(new OC\Core\Command\App\Enable(\OC::$server->getAppManager())); + $application->add(new OC\Core\Command\App\Enable(\OC::$server->getAppManager(), \OC::$server->getConfig())); $application->add(new OC\Core\Command\App\GetPath()); $application->add(new OC\Core\Command\App\ListApps(\OC::$server->getAppManager()));