summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/command
diff options
context:
space:
mode:
authorMartin Konrad <konrad@frib.msu.edu>2014-09-28 23:17:53 -0400
committerMartin Konrad <konrad@frib.msu.edu>2014-09-29 00:21:20 -0400
commitb57960aeec1a454418f204c61cc36a7b94089442 (patch)
tree44e8f59d7a34eb1589ed0397f48b0a9938e9281d /apps/user_ldap/command
parent84923475c076d8b30d271d2a14862a42d279af27 (diff)
downloadnextcloud-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.php51
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;
+ }
+}