From 20e37bd38f8e1291079f3d006f6e369d826a4463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu> Date: Thu, 5 Nov 2015 11:37:31 +0100 Subject: [PATCH] Adding occ command to create an addressbook --- apps/dav/appinfo/register_command.php | 8 ++++ apps/dav/command/createaddressbook.php | 52 ++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 apps/dav/appinfo/register_command.php create mode 100644 apps/dav/command/createaddressbook.php diff --git a/apps/dav/appinfo/register_command.php b/apps/dav/appinfo/register_command.php new file mode 100644 index 0000000000..c996dd4406 --- /dev/null +++ b/apps/dav/appinfo/register_command.php @@ -0,0 +1,8 @@ +<?php + +use OCA\DAV\Command\CreateAddressBook; + +$dbConnection = \OC::$server->getDatabaseConnection(); +$userManager = OC::$server->getUserManager(); +/** @var Symfony\Component\Console\Application $application */ +$application->add(new CreateAddressBook($userManager, $dbConnection)); diff --git a/apps/dav/command/createaddressbook.php b/apps/dav/command/createaddressbook.php new file mode 100644 index 0000000000..286871b39e --- /dev/null +++ b/apps/dav/command/createaddressbook.php @@ -0,0 +1,52 @@ +<?php + +namespace OCA\DAV\Command; + +use OCA\DAV\CardDAV\CardDavBackend; +use OCP\IDBConnection; +use OCP\IUserManager; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class CreateAddressBook extends Command { + + /** @var IUserManager */ + protected $userManager; + + /** @var \OCP\IDBConnection */ + protected $dbConnection; + + /** + * @param IUserManager $userManager + * @param IDBConnection $dbConnection + */ + function __construct(IUserManager $userManager, IDBConnection $dbConnection) { + parent::__construct(); + $this->userManager = $userManager; + $this->dbConnection = $dbConnection; + } + + protected function configure() { + $this + ->setName('dav:create-addressbook') + ->setDescription('Create a dav addressbook') + ->addArgument('user', + InputArgument::REQUIRED, + 'User for whom the addressbook will be created') + ->addArgument('name', + InputArgument::REQUIRED, + 'Name of the addressbook'); + } + + protected function execute(InputInterface $input, OutputInterface $output) { + $user = $input->getArgument('user'); + if (!$this->userManager->userExists($user)) { + throw new \InvalidArgumentException("User <$user> in unknown."); + } + $name = $input->getArgument('name'); + $carddav = new CardDavBackend($this->dbConnection); + $carddav->createAddressBook("principals/$user", $name, []); + } +} -- GitLab