From b57960aeec1a454418f204c61cc36a7b94089442 Mon Sep 17 00:00:00 2001 From: Martin Konrad Date: Sun, 28 Sep 2014 23:17:53 -0400 Subject: [PATCH] Add a CLI command that creates an empty LDAP config This is needed to configure the user_ldap app without using the wizard (e.g. using tools like Puppet). --- apps/user_ldap/appinfo/register_command.php | 1 + apps/user_ldap/command/createemptyconfig.php | 51 ++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 apps/user_ldap/command/createemptyconfig.php diff --git a/apps/user_ldap/appinfo/register_command.php b/apps/user_ldap/appinfo/register_command.php index 10d992531c4..639597fdb83 100644 --- a/apps/user_ldap/appinfo/register_command.php +++ b/apps/user_ldap/appinfo/register_command.php @@ -9,3 +9,4 @@ $application->add(new OCA\user_ldap\Command\ShowConfig()); $application->add(new OCA\user_ldap\Command\SetConfig()); $application->add(new OCA\user_ldap\Command\TestConfig()); +$application->add(new OCA\user_ldap\Command\CreateEmptyConfig()); diff --git a/apps/user_ldap/command/createemptyconfig.php b/apps/user_ldap/command/createemptyconfig.php new file mode 100644 index 00000000000..32010825361 --- /dev/null +++ b/apps/user_ldap/command/createemptyconfig.php @@ -0,0 +1,51 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\user_ldap\Command; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use \OCA\user_ldap\lib\Helper; +use \OCA\user_ldap\lib\Configuration; + +class CreateEmptyConfig extends Command { + + protected function configure() { + $this + ->setName('ldap:create-empty-config') + ->setDescription('creates an empty LDAP configuration') + ; + } + + + protected function execute(InputInterface $input, OutputInterface $output) { + $configPrefix = $this->getNewConfigurationPrefix(); + $output->writeln("Created new configuration with configID '{$configPrefix}'"); + + $configHolder = new Configuration($configPrefix); + $configHolder->saveConfiguration(); + } + + protected function getNewConfigurationPrefix() { + $serverConnections = Helper::getServerConfigurationPrefixes(); + + // first connection uses no prefix + if(sizeof($serverConnections) == 0) { + return ''; + } + + sort($serverConnections); + $lastKey = array_pop($serverConnections); + $lastNumber = intval(str_replace('s', '', $lastKey)); + $nextPrefix = 's' . str_pad($lastNumber + 1, 2, '0', STR_PAD_LEFT); + return $nextPrefix; + } +} -- 2.39.5