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'); $this->cardDavBackend->createAddressBook("principals/users/{$user}", $name, []); }
/** * @param string $principal * @param string $id * @param array $properties * @return array|null * @throws \Sabre\DAV\Exception\BadRequest */ protected function ensureSystemAddressBookExists($principal, $id, $properties) { $book = $this->backend->getAddressBooksByUri($id); if (!is_null($book)) { return $book; } $this->backend->createAddressBook($principal, $id, $properties); return $this->backend->getAddressBooksByUri($id); }
/** * @param string $user */ public function migrateForUser($user) { $this->adapter->foreachBook($user, function ($book) use($user) { $principal = "principals/users/{$user}"; $knownBooks = $this->backend->getAddressBooksByUri($principal, $book['uri']); if (!is_null($knownBooks)) { return; } $newId = $this->backend->createAddressBook($principal, $book['uri'], ['{DAV:}displayname' => $book['displayname'], '{' . Plugin::NS_CARDDAV . '}addressbook-description' => $book['description']]); $this->migrateBook($book['id'], $newId); $this->migrateShares($book['id'], $newId); }); }
protected function ensureSystemAddressBookExists() { $book = $this->backend->getAddressBooksByUri('system'); if (!is_null($book)) { return $book; } $systemPrincipal = "principals/system/system"; $this->backend->createAddressBook($systemPrincipal, 'system', ['{' . Plugin::NS_CARDDAV . '}addressbook-description' => 'System addressbook which holds all users of this instance']); return $this->backend->getAddressBooksByUri('system'); }
protected function execute(InputInterface $input, OutputInterface $output) { $user = $input->getArgument('user'); if (!$this->userManager->userExists($user)) { throw new \InvalidArgumentException("User <{$user}> in unknown."); } $principalBackend = new Principal($this->userManager, $this->groupManager); $name = $input->getArgument('name'); $carddav = new CardDavBackend($this->dbConnection, $principalBackend, $this->logger); $carddav->createAddressBook("principals/users/{$user}", $name, []); }
public function createProjectBook() { $principal = 'principals/users/' . $this->fakeUser; $book = $this->getProjectBook(); if (empty($book)) { try { $this->cardDavBackend->createAddressBook($principal, 'project_contacts', ['{DAV:}displayname' => 'Project Contacts']); $projectBook = $this->getProjectBook(); $users = $this->connect->users()->getAllIds(); if (!empty($projectBook['id']) && is_array($users)) { foreach ($users as $user) { if ($user['uid'] == $this->fakeUser) { continue; } $this->insertCard($projectBook['id'], $user['uid']); } } } catch (\Exception $ex) { \OC::$server->getLogger()->logException($ex); } } }
public function testSyncSupport() { // create a new address book $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []); $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER); $this->assertEquals(1, count($books)); $bookId = $books[0]['id']; // fist call without synctoken $changes = $this->backend->getChangesForAddressBook($bookId, '', 1); $syncToken = $changes['syncToken']; // add a change $uri0 = $this->getUniqueID('card'); $this->backend->createCard($bookId, $uri0, ''); // look for changes $changes = $this->backend->getChangesForAddressBook($bookId, $syncToken, 1); $this->assertEquals($uri0, $changes['added'][0]); }
public function testSharing() { $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []); $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER); $this->assertEquals(1, count($books)); $this->backend->updateShares('Example', [['href' => 'principal:principals/best-friend']], []); $shares = $this->backend->getShares('Example'); $this->assertEquals(1, count($shares)); // adding the same sharee again has no effect $this->backend->updateShares('Example', [['href' => 'principal:principals/best-friend']], []); $shares = $this->backend->getShares('Example'); $this->assertEquals(1, count($shares)); $books = $this->backend->getAddressBooksForUser('principals/best-friend'); $this->assertEquals(1, count($books)); $this->backend->updateShares('Example', [], [['href' => 'principal:principals/best-friend']]); $shares = $this->backend->getShares('Example'); $this->assertEquals(0, count($shares)); $books = $this->backend->getAddressBooksForUser('principals/best-friend'); $this->assertEquals(0, count($books)); }
public function postLogin($params) { $user = $this->userManager->get($params['uid']); $principal = 'principals/users/' . $user->getUID(); $calendars = $this->calDav->getCalendarsForUser($principal); if (empty($calendars)) { try { $this->calDav->createCalendar($principal, 'default', []); } catch (\Exception $ex) { \OC::$server->getLogger()->logException($ex); } } $books = $this->cardDav->getAddressBooksForUser($principal); if (empty($books)) { try { $this->cardDav->createAddressBook($principal, 'default', []); } catch (\Exception $ex) { \OC::$server->getLogger()->logException($ex); } } }
public function postLogin($params) { $user = $this->userManager->get($params['uid']); if (!is_null($user)) { $principal = 'principals/users/' . $user->getUID(); $calendars = $this->calDav->getCalendarsForUser($principal); if (empty($calendars) || count($calendars) === 1 && $calendars[0]['uri'] === BirthdayService::BIRTHDAY_CALENDAR_URI) { try { $this->calDav->createCalendar($principal, 'personal', ['{DAV:}displayname' => 'Personal']); } catch (\Exception $ex) { \OC::$server->getLogger()->logException($ex); } } $books = $this->cardDav->getAddressBooksForUser($principal); if (empty($books)) { try { $this->cardDav->createAddressBook($principal, 'contacts', ['{DAV:}displayname' => 'Contacts']); } catch (\Exception $ex) { \OC::$server->getLogger()->logException($ex); } } } }