diff options
author | Martin Konrad <konrad@frib.msu.edu> | 2014-09-28 23:17:53 -0400 |
---|---|---|
committer | Martin Konrad <konrad@frib.msu.edu> | 2014-09-29 00:21:20 -0400 |
commit | b57960aeec1a454418f204c61cc36a7b94089442 (patch) | |
tree | 44e8f59d7a34eb1589ed0397f48b0a9938e9281d /apps/user_ldap/command | |
parent | 84923475c076d8b30d271d2a14862a42d279af27 (diff) | |
download | nextcloud-server-b57960aeec1a454418f204c61cc36a7b94089442.tar.gz nextcloud-server-b57960aeec1a454418f204c61cc36a7b94089442.zip |
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).
Diffstat (limited to 'apps/user_ldap/command')
-rw-r--r-- | apps/user_ldap/command/createemptyconfig.php | 51 |
1 files changed, 51 insertions, 0 deletions
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 @@ +<?php +/** + * Copyright (c) 2014 Martin Konrad <info@martin-konrad.net> + * 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; + } +} |