From: Gunnar Wrobel
Date: Tue, 27 Apr 2010 22:54:04 +0000 (+0200)
Subject: The namespace handler is part of the driver.
X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=d9cdd828c3293ec11321cbeabb78ac3cbdcc4bdd;p=horde.git
The namespace handler is part of the driver.
---
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php
index 1f5ef55df..8ae25f5de 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php
@@ -219,7 +219,7 @@ interface Horde_Kolab_Storage_Driver
/**
* Retrieve the namespace information for this connection.
*
- * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ * @return Horde_Kolab_Storage_Driver_Namespace The initialized namespace handler.
*/
public function getNamespace();
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Base.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Base.php
index 33af192e4..08ee39591 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Base.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Base.php
@@ -70,16 +70,16 @@ implements Horde_Kolab_Storage_Driver
/**
* Retrieve the namespace information for this connection.
*
- * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ * @return Horde_Kolab_Storage_Driver_Namespace The initialized namespace handler.
*/
public function getNamespace()
{
if (isset($this->_params['namespaces'])) {
- return new Horde_Kolab_Storage_Namespace_Config(
+ return new Horde_Kolab_Storage_Driver_Namespace_Config(
$this->_params['namespaces']
);
}
- return new Horde_Kolab_Storage_Namespace_Fixed();
+ return new Horde_Kolab_Storage_Driver_Namespace_Fixed();
}
/**
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Base.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Base.php
index 87b061ec6..e7aef4e5d 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Base.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Base.php
@@ -258,7 +258,7 @@ implements Horde_Kolab_Storage_Driver
/**
* Retrieve the namespace information for this connection.
*
- * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ * @return Horde_Kolab_Storage_Driver_Namespace The initialized namespace handler.
*/
public function getNamespace()
{
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Log.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Log.php
index 0f118f9b9..1f9c8b938 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Log.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Decorator/Log.php
@@ -258,7 +258,7 @@ extends Horde_Kolab_Storage_Driver_Decorator_Base
/**
* Retrieve the namespace information for this connection.
*
- * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ * @return Horde_Kolab_Storage_Driver_Namespace The initialized namespace handler.
*/
public function getNamespace()
{
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php
index 1f1bf10fd..1dc0e8c51 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php
@@ -403,12 +403,12 @@ extends Horde_Kolab_Storage_Driver_Base
/**
* Retrieve the namespace information for this connection.
*
- * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ * @return Horde_Kolab_Storage_Driver_Namespace The initialized namespace handler.
*/
public function getNamespace()
{
if ($this->_imap->queryCapability('NAMESPACE') === true) {
- return new Horde_Kolab_Storage_Namespace_Imap(
+ return new Horde_Kolab_Storage_Driver_Namespace_Imap(
$this->_imap->getNamespaces(),
$this->getParam('namespaces', array())
);
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace.php
new file mode 100644
index 000000000..a3a2639a2
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace.php
@@ -0,0 +1,226 @@
+
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * The Horde_Kolab_Storage_Driver_Namespace:: class handles IMAP namespaces and allows
+ * to derive folder information from folder names.
+ *
+ * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+abstract class Horde_Kolab_Storage_Driver_Namespace
+implements Iterator
+{
+ /** The possible namespace types (RFC 2342 [5]) */
+ const PERSONAL = 'personal';
+ const OTHER = 'other';
+ const SHARED = 'shared';
+
+ /**
+ * The namespaces.
+ *
+ * @var array
+ */
+ protected $_namespaces = array();
+
+ /**
+ * The characterset this module uses to communicate with the outside world.
+ *
+ * @var string
+ */
+ protected $_charset;
+
+ /**
+ * A prefix in the shared namespaces that will be ignored/removed.
+ *
+ * @var string
+ */
+ protected $_sharedPrefix;
+
+ /**
+ * The namespace that matches any folder name not matching to another
+ * namespace.
+ *
+ * @var Horde_Kolab_Storage_Driver_Namespace_Element
+ */
+ protected $_any;
+
+ /**
+ * Indicates the personal namespace that the class will use to create new
+ * folders.
+ *
+ * @var Horde_Kolab_Storage_Driver_Namespace_Element
+ */
+ protected $_primaryPersonalNamespace;
+
+ /**
+ * A helper for iteration over the namespaces.
+ *
+ * @var array
+ */
+ protected $_iteration;
+
+ /**
+ * Constructor.
+ */
+ public function __construct()
+ {
+ $this->_charset = Horde_Nls::getCharset();
+ if (empty($this->_primaryPersonalNamespace)) {
+ $personal = null;
+ foreach ($this->_namespaces as $namespace) {
+ if ($namespace->getName() == 'INBOX') {
+ $this->_primaryPersonalNamespace = $namespace;
+ break;
+ }
+ if (empty($personal) && $namespace->getType() == self::PERSONAL) {
+ $personal = $namespace;
+ }
+ }
+ if (empty($this->_primaryPersonalNamespace)) {
+ $this->_primaryPersonalNamespace = $personal;
+ }
+ }
+ }
+
+ /**
+ * Match a folder name with the corresponding namespace.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return Horde_Kolab_Storage_Driver_Namespace_Element The corresponding namespace.
+ *
+ * @throws Horde_Kolab_Storage_Exception If the namespace of the folder
+ * cannot be determined.
+ */
+ protected function matchNamespace($name)
+ {
+ foreach ($this->_namespaces as $namespace) {
+ if ($namespace->matches($name)) {
+ return $namespace;
+ }
+ }
+ if (!empty($this->_any)) {
+ return $this->_any;
+ }
+ throw new Horde_Kolab_Storage_Exception(
+ sprintf('Namespace of folder %s cannot be determined.', $name)
+ );
+ }
+
+ /**
+ * Get the character set used/expected when calling the getTitle() or
+ * setName() methods.
+ *
+ * @return string The character set.
+ */
+ public function getCharset()
+ {
+ return $this->_charset;
+ }
+
+ /**
+ * Return the title of a folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return string The title of the folder.
+ */
+ public function getTitle($name)
+ {
+ $name = Horde_String::convertCharset($name, 'UTF7-IMAP', $this->_charset);
+ return $this->matchNamespace($name)->getTitle($name);
+ }
+
+ /**
+ * Return the owner of a folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return string The owner of the folder.
+ */
+ public function getOwner($name)
+ {
+ $name = Horde_String::convertCharset($name, 'UTF7-IMAP', $this->_charset);
+ return $this->matchNamespace($name)->getOwner($name);
+ }
+
+ /**
+ * Get the sub path for the given folder name.
+ *
+ * @param string $name The folder name.
+ *
+ * @return string The sub path.
+ */
+ public function getSubpath($name)
+ {
+ $name = Horde_String::convertCharset($name, 'UTF7-IMAP', $this->_charset);
+ return $this->matchNamespace($name)->getSubpath($name);
+ }
+
+ /**
+ * Generate an IMAP folder name.
+ *
+ * @param string $name The new folder name.
+ *
+ * @return string The IMAP folder name.
+ */
+ public function setName($name)
+ {
+ $namespace = $this->matchNamespace($name);
+ $path = explode(':', $name);
+ if (empty($this->_sharedPrefix)
+ || (strpos($path[0], $this->_sharedPrefix) === false
+ && $namespace->getType() != self::OTHER)) {
+ array_unshift($path, $this->_primaryPersonalNamespace->getName());
+ $namespace = $this->_primaryPersonalNamespace;
+ }
+ return Horde_String::convertCharset($namespace->generateName($path), $this->_charset, 'UTF7-IMAP');
+ }
+
+ function rewind()
+ {
+ $this->_iterator = $this->_namespaces;
+ $this->_iterator[] = $this->_any;
+ return reset($this->_iterator);
+ }
+
+ function current()
+ {
+ return current($this->_iterator);
+ }
+
+ function key()
+ {
+ return key($this->_iterator);
+ }
+
+ function next()
+ {
+ return next($this->_iterator);
+ }
+
+ function valid()
+ {
+ return key($this->_iterator) !== null;
+ }
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Config.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Config.php
new file mode 100644
index 000000000..05f98a2d4
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Config.php
@@ -0,0 +1,60 @@
+
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * The Horde_Kolab_Storage_Driver_Namespace_Config:: allows to configure the available
+ * IMAP namespaces on the Kolab server.
+ *
+ * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Driver_Namespace_Config
+extends Horde_Kolab_Storage_Driver_Namespace
+{
+ /**
+ * Constructor.
+ */
+ public function __construct(array $configuration)
+ {
+ parent::__construct();
+ foreach ($configuration as $element) {
+ if ($element['type'] == Horde_Kolab_Storage_Driver_Namespace::SHARED
+ && isset($element['prefix'])) {
+ $namespace_element = new Horde_Kolab_Storage_Driver_Namespace_Element_SharedWithPrefix(
+ $element['name'], $element['delimiter'], $element['prefix']
+ );
+ $this->_sharedPrefix = $element['prefix'];
+ } else {
+ $class = 'Horde_Kolab_Storage_Driver_Namespace_Element_' . ucfirst($element['type']);
+ $namespace_element = new $class($element['name'], $element['delimiter']);
+ }
+ if (empty($element['name'])) {
+ $this->_any = $namespace_element;
+ } else {
+ $this->_namespaces[] = $namespace_element;
+ }
+ if (isset($element['add'])) {
+ $this->_primaryPersonalNamespace = $namespace_element;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element.php
new file mode 100644
index 000000000..86c6ecd9b
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element.php
@@ -0,0 +1,135 @@
+_name = $name;
+ $this->_delimiter = $delimiter;
+ }
+
+ /**
+ * Return the type of this namespace (personal, other, or shared).
+ *
+ * @return string The type.
+ */
+ abstract public function getType();
+
+ /**
+ * Return the name of this namespace.
+ *
+ * @return string The name/prefix.
+ */
+ public function getName()
+ {
+ return $this->_name;
+ }
+
+ /**
+ * Return the delimiter for this namespace.
+ *
+ * @return string The delimiter.
+ */
+ public function getDelimiter()
+ {
+ return $this->_delimiter;
+ }
+
+ /**
+ * Does the folder name lie in this namespace?
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return boolean True if the folder is element of this namespace.
+ */
+ public function matches($name)
+ {
+ return (strpos($name, $this->_name) === 0);
+ }
+
+ /**
+ * Return the owner of a folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return string The owner of the folder.
+ */
+ abstract public function getOwner($name);
+
+ /**
+ * Return the title of a folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return string The title of the folder.
+ */
+ public function getTitle($name)
+ {
+ return join($this->_subpath($name), ':');
+ }
+
+ /**
+ * Get the sub path for the given folder name.
+ *
+ * @param string $name The folder name.
+ *
+ * @return string The sub path.
+ */
+ public function getSubpath($name)
+ {
+ return join($this->_subpath($name), $this->_delimiter);
+ }
+
+ /**
+ * Return an array describing the path elements of the folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return array The path elements.
+ */
+ protected function _subpath($name)
+ {
+ $path = explode($this->_delimiter, $name);
+ if ($path[0] == $this->_name) {
+ array_shift($path);
+ }
+ //@todo: What about the potential trailing domain?
+ return $path;
+ }
+
+ /**
+ * Generate a folder path for the given path in this namespace.
+ *
+ * @param array $path The path of the folder.
+ *
+ * @return string The name of the folder.
+ */
+ public function generateName($path)
+ {
+ return join($path, $this->_delimiter);
+ }
+
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element/Other.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element/Other.php
new file mode 100644
index 000000000..f0921a736
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element/Other.php
@@ -0,0 +1,49 @@
+_delimiter, $name);
+ $user = $path[1];
+ if (strpos($user, '@') === false) {
+ $domain = strstr(array_pop($path), '@');
+ if (!empty($domain)) {
+ $user .= $domain;
+ }
+ }
+ return Horde_Kolab_Storage_Driver_Namespace::OTHER . ':' . $user;
+ }
+
+ /**
+ * Return an array describing the path elements of the folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return array The path elements.
+ */
+ protected function _subpath($name)
+ {
+ $path = parent::_subpath($name);
+ array_shift($path);
+ return $path;
+ }
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element/Personal.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element/Personal.php
new file mode 100644
index 000000000..dfe2c8586
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Element/Personal.php
@@ -0,0 +1,27 @@
+_prefix = $prefix;
+ }
+
+ /**
+ * Return an array describing the path elements of the folder.
+ *
+ * @param string $name The name of the folder.
+ *
+ * @return array The path elements.
+ */
+ protected function _subpath($name)
+ {
+ $path = parent::_subpath($name);
+ if (strpos($path[0], $this->_prefix) === 0) {
+ $path[0] = substr($path[0], strlen($this->_prefix));
+ }
+ return $path;
+ }
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Fixed.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Fixed.php
new file mode 100644
index 000000000..6ab4aa100
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Fixed.php
@@ -0,0 +1,57 @@
+
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * The Horde_Kolab_Storage_Driver_Namespace_Fixed:: implements the default IMAP
+ * namespaces on the Kolab server.
+ *
+ * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Driver_Namespace_Fixed
+extends Horde_Kolab_Storage_Driver_Namespace
+{
+ /**
+ * Indicates the personal namespace that the class will use to create new
+ * folders.
+ *
+ * @var string
+ */
+ protected $_primaryPersonalNamespace = 'INBOX';
+
+ /**
+ * Constructor.
+ */
+ public function __construct()
+ {
+ parent::__construct();
+
+ $personal = new Horde_Kolab_Storage_Driver_Namespace_Element_Personal('INBOX/', '/');
+ $other = new Horde_Kolab_Storage_Driver_Namespace_Element_Other('user/', '/');
+ $shared = new Horde_Kolab_Storage_Driver_Namespace_Element_SharedWithPrefix('', '/', 'shared.');
+
+ $this->_namespaces = array($personal, $other);
+ $this->_any = $shared;
+ $this->_primaryPersonalNamespace = $personal;
+ $this->_sharedPrefix = 'shared.';
+ }
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Imap.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Imap.php
new file mode 100644
index 000000000..20d0314c4
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Namespace/Imap.php
@@ -0,0 +1,49 @@
+
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * The Horde_Kolab_Storage_Driver_Namespace_Config:: allows to use the information from
+ * the IMAP NAMESPACE command to identify the IMAP namespaces on the Kolab
+ * server.
+ *
+ * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+class Horde_Kolab_Storage_Driver_Namespace_Imap
+extends Horde_Kolab_Storage_Driver_Namespace_Config
+{
+ /**
+ * Constructor.
+ */
+ public function __construct(array $namespaces, array $configuration = array())
+ {
+ $c = array();
+ foreach ($namespaces as $namespace) {
+ if (in_array($namespace['name'], array_keys($configuration))) {
+ $namespace = array_merge($namespace, $configuration[$namespace['name']]);
+ }
+ $c[] = $namespace;
+ }
+ parent::__construct($c);
+ }
+}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Pear.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Pear.php
index a26ff7329..168132d00 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Pear.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Pear.php
@@ -403,7 +403,7 @@ extends Horde_Kolab_Storage_Driver_Base
/**
* Retrieve the namespace information for this connection.
*
- * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ * @return Horde_Kolab_Storage_Driver_Namespace The initialized namespace handler.
*/
public function getNamespace()
{
@@ -426,7 +426,7 @@ extends Horde_Kolab_Storage_Driver_Base
$namespaces[] = $namespace;
}
}
- return new Horde_Kolab_Storage_Namespace_Imap(
+ return new Horde_Kolab_Storage_Driver_Namespace_Imap(
$namespaces,
$this->getParam('namespaces', array())
);
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder/Base.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder/Base.php
index aba5f6f14..8e91fa57f 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder/Base.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder/Base.php
@@ -496,10 +496,10 @@ implements Horde_Kolab_Storage_Folder
* rather than in a module nearer to the applications.
*/
switch ($owner) {
- case Horde_Kolab_Storage_Namespace::PERSONAL:
+ case Horde_Kolab_Storage_Driver_Namespace::PERSONAL:
$this->_owner = $this->_driver->getAuth();
break;
- case Horde_Kolab_Storage_Namespace::SHARED:
+ case Horde_Kolab_Storage_Driver_Namespace::SHARED:
$this->_owner = 'anonymous';
break;
default:
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace.php
deleted file mode 100644
index d162881f5..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace.php
+++ /dev/null
@@ -1,226 +0,0 @@
-
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-
-/**
- * The Horde_Kolab_Storage_Namespace:: class handles IMAP namespaces and allows
- * to derive folder information from folder names.
- *
- * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @category Kolab
- * @package Kolab_Storage
- * @author Gunnar Wrobel
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-abstract class Horde_Kolab_Storage_Namespace
-implements Iterator
-{
- /** The possible namespace types (RFC 2342 [5]) */
- const PERSONAL = 'personal';
- const OTHER = 'other';
- const SHARED = 'shared';
-
- /**
- * The namespaces.
- *
- * @var array
- */
- protected $_namespaces = array();
-
- /**
- * The characterset this module uses to communicate with the outside world.
- *
- * @var string
- */
- protected $_charset;
-
- /**
- * A prefix in the shared namespaces that will be ignored/removed.
- *
- * @var string
- */
- protected $_sharedPrefix;
-
- /**
- * The namespace that matches any folder name not matching to another
- * namespace.
- *
- * @var Horde_Kolab_Storage_Namespace_Element
- */
- protected $_any;
-
- /**
- * Indicates the personal namespace that the class will use to create new
- * folders.
- *
- * @var Horde_Kolab_Storage_Namespace_Element
- */
- protected $_primaryPersonalNamespace;
-
- /**
- * A helper for iteration over the namespaces.
- *
- * @var array
- */
- protected $_iteration;
-
- /**
- * Constructor.
- */
- public function __construct()
- {
- $this->_charset = Horde_Nls::getCharset();
- if (empty($this->_primaryPersonalNamespace)) {
- $personal = null;
- foreach ($this->_namespaces as $namespace) {
- if ($namespace->getName() == 'INBOX') {
- $this->_primaryPersonalNamespace = $namespace;
- break;
- }
- if (empty($personal) && $namespace->getType() == self::PERSONAL) {
- $personal = $namespace;
- }
- }
- if (empty($this->_primaryPersonalNamespace)) {
- $this->_primaryPersonalNamespace = $personal;
- }
- }
- }
-
- /**
- * Match a folder name with the corresponding namespace.
- *
- * @param string $name The name of the folder.
- *
- * @return Horde_Kolab_Storage_Namespace_Element The corresponding namespace.
- *
- * @throws Horde_Kolab_Storage_Exception If the namespace of the folder
- * cannot be determined.
- */
- protected function matchNamespace($name)
- {
- foreach ($this->_namespaces as $namespace) {
- if ($namespace->matches($name)) {
- return $namespace;
- }
- }
- if (!empty($this->_any)) {
- return $this->_any;
- }
- throw new Horde_Kolab_Storage_Exception(
- sprintf('Namespace of folder %s cannot be determined.', $name)
- );
- }
-
- /**
- * Get the character set used/expected when calling the getTitle() or
- * setName() methods.
- *
- * @return string The character set.
- */
- public function getCharset()
- {
- return $this->_charset;
- }
-
- /**
- * Return the title of a folder.
- *
- * @param string $name The name of the folder.
- *
- * @return string The title of the folder.
- */
- public function getTitle($name)
- {
- $name = Horde_String::convertCharset($name, 'UTF7-IMAP', $this->_charset);
- return $this->matchNamespace($name)->getTitle($name);
- }
-
- /**
- * Return the owner of a folder.
- *
- * @param string $name The name of the folder.
- *
- * @return string The owner of the folder.
- */
- public function getOwner($name)
- {
- $name = Horde_String::convertCharset($name, 'UTF7-IMAP', $this->_charset);
- return $this->matchNamespace($name)->getOwner($name);
- }
-
- /**
- * Get the sub path for the given folder name.
- *
- * @param string $name The folder name.
- *
- * @return string The sub path.
- */
- public function getSubpath($name)
- {
- $name = Horde_String::convertCharset($name, 'UTF7-IMAP', $this->_charset);
- return $this->matchNamespace($name)->getSubpath($name);
- }
-
- /**
- * Generate an IMAP folder name.
- *
- * @param string $name The new folder name.
- *
- * @return string The IMAP folder name.
- */
- public function setName($name)
- {
- $namespace = $this->matchNamespace($name);
- $path = explode(':', $name);
- if (empty($this->_sharedPrefix)
- || (strpos($path[0], $this->_sharedPrefix) === false
- && $namespace->getType() != self::OTHER)) {
- array_unshift($path, $this->_primaryPersonalNamespace->getName());
- $namespace = $this->_primaryPersonalNamespace;
- }
- return Horde_String::convertCharset($namespace->generateName($path), $this->_charset, 'UTF7-IMAP');
- }
-
- function rewind()
- {
- $this->_iterator = $this->_namespaces;
- $this->_iterator[] = $this->_any;
- return reset($this->_iterator);
- }
-
- function current()
- {
- return current($this->_iterator);
- }
-
- function key()
- {
- return key($this->_iterator);
- }
-
- function next()
- {
- return next($this->_iterator);
- }
-
- function valid()
- {
- return key($this->_iterator) !== null;
- }
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Config.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Config.php
deleted file mode 100644
index e4e6ffdee..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Config.php
+++ /dev/null
@@ -1,60 +0,0 @@
-
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-
-/**
- * The Horde_Kolab_Storage_Namespace_Config:: allows to configure the available
- * IMAP namespaces on the Kolab server.
- *
- * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @category Kolab
- * @package Kolab_Storage
- * @author Gunnar Wrobel
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-class Horde_Kolab_Storage_Namespace_Config
-extends Horde_Kolab_Storage_Namespace
-{
- /**
- * Constructor.
- */
- public function __construct(array $configuration)
- {
- parent::__construct();
- foreach ($configuration as $element) {
- if ($element['type'] == Horde_Kolab_Storage_Namespace::SHARED
- && isset($element['prefix'])) {
- $namespace_element = new Horde_Kolab_Storage_Namespace_Element_SharedWithPrefix(
- $element['name'], $element['delimiter'], $element['prefix']
- );
- $this->_sharedPrefix = $element['prefix'];
- } else {
- $class = 'Horde_Kolab_Storage_Namespace_Element_' . ucfirst($element['type']);
- $namespace_element = new $class($element['name'], $element['delimiter']);
- }
- if (empty($element['name'])) {
- $this->_any = $namespace_element;
- } else {
- $this->_namespaces[] = $namespace_element;
- }
- if (isset($element['add'])) {
- $this->_primaryPersonalNamespace = $namespace_element;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element.php
deleted file mode 100644
index fb1ab2e7c..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element.php
+++ /dev/null
@@ -1,135 +0,0 @@
-_name = $name;
- $this->_delimiter = $delimiter;
- }
-
- /**
- * Return the type of this namespace (personal, other, or shared).
- *
- * @return string The type.
- */
- abstract public function getType();
-
- /**
- * Return the name of this namespace.
- *
- * @return string The name/prefix.
- */
- public function getName()
- {
- return $this->_name;
- }
-
- /**
- * Return the delimiter for this namespace.
- *
- * @return string The delimiter.
- */
- public function getDelimiter()
- {
- return $this->_delimiter;
- }
-
- /**
- * Does the folder name lie in this namespace?
- *
- * @param string $name The name of the folder.
- *
- * @return boolean True if the folder is element of this namespace.
- */
- public function matches($name)
- {
- return (strpos($name, $this->_name) === 0);
- }
-
- /**
- * Return the owner of a folder.
- *
- * @param string $name The name of the folder.
- *
- * @return string The owner of the folder.
- */
- abstract public function getOwner($name);
-
- /**
- * Return the title of a folder.
- *
- * @param string $name The name of the folder.
- *
- * @return string The title of the folder.
- */
- public function getTitle($name)
- {
- return join($this->_subpath($name), ':');
- }
-
- /**
- * Get the sub path for the given folder name.
- *
- * @param string $name The folder name.
- *
- * @return string The sub path.
- */
- public function getSubpath($name)
- {
- return join($this->_subpath($name), $this->_delimiter);
- }
-
- /**
- * Return an array describing the path elements of the folder.
- *
- * @param string $name The name of the folder.
- *
- * @return array The path elements.
- */
- protected function _subpath($name)
- {
- $path = explode($this->_delimiter, $name);
- if ($path[0] == $this->_name) {
- array_shift($path);
- }
- //@todo: What about the potential trailing domain?
- return $path;
- }
-
- /**
- * Generate a folder path for the given path in this namespace.
- *
- * @param array $path The path of the folder.
- *
- * @return string The name of the folder.
- */
- public function generateName($path)
- {
- return join($path, $this->_delimiter);
- }
-
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element/Other.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element/Other.php
deleted file mode 100644
index e363d669d..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element/Other.php
+++ /dev/null
@@ -1,49 +0,0 @@
-_delimiter, $name);
- $user = $path[1];
- if (strpos($user, '@') === false) {
- $domain = strstr(array_pop($path), '@');
- if (!empty($domain)) {
- $user .= $domain;
- }
- }
- return Horde_Kolab_Storage_Namespace::OTHER . ':' . $user;
- }
-
- /**
- * Return an array describing the path elements of the folder.
- *
- * @param string $name The name of the folder.
- *
- * @return array The path elements.
- */
- protected function _subpath($name)
- {
- $path = parent::_subpath($name);
- array_shift($path);
- return $path;
- }
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element/Personal.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element/Personal.php
deleted file mode 100644
index a0f368691..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Element/Personal.php
+++ /dev/null
@@ -1,27 +0,0 @@
-_prefix = $prefix;
- }
-
- /**
- * Return an array describing the path elements of the folder.
- *
- * @param string $name The name of the folder.
- *
- * @return array The path elements.
- */
- protected function _subpath($name)
- {
- $path = parent::_subpath($name);
- if (strpos($path[0], $this->_prefix) === 0) {
- $path[0] = substr($path[0], strlen($this->_prefix));
- }
- return $path;
- }
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Fixed.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Fixed.php
deleted file mode 100644
index 3b170b804..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Fixed.php
+++ /dev/null
@@ -1,57 +0,0 @@
-
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-
-/**
- * The Horde_Kolab_Storage_Namespace_Fixed:: implements the default IMAP
- * namespaces on the Kolab server.
- *
- * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @category Kolab
- * @package Kolab_Storage
- * @author Gunnar Wrobel
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-class Horde_Kolab_Storage_Namespace_Fixed
-extends Horde_Kolab_Storage_Namespace
-{
- /**
- * Indicates the personal namespace that the class will use to create new
- * folders.
- *
- * @var string
- */
- protected $_primaryPersonalNamespace = 'INBOX';
-
- /**
- * Constructor.
- */
- public function __construct()
- {
- parent::__construct();
-
- $personal = new Horde_Kolab_Storage_Namespace_Element_Personal('INBOX/', '/');
- $other = new Horde_Kolab_Storage_Namespace_Element_Other('user/', '/');
- $shared = new Horde_Kolab_Storage_Namespace_Element_SharedWithPrefix('', '/', 'shared.');
-
- $this->_namespaces = array($personal, $other);
- $this->_any = $shared;
- $this->_primaryPersonalNamespace = $personal;
- $this->_sharedPrefix = 'shared.';
- }
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Imap.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Imap.php
deleted file mode 100644
index b9f41aef0..000000000
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace/Imap.php
+++ /dev/null
@@ -1,49 +0,0 @@
-
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-
-/**
- * The Horde_Kolab_Storage_Namespace_Config:: allows to use the information from
- * the IMAP NAMESPACE command to identify the IMAP namespaces on the Kolab
- * server.
- *
- * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @category Kolab
- * @package Kolab_Storage
- * @author Gunnar Wrobel
- * @license http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link http://pear.horde.org/index.php?package=Kolab_Storage
- */
-class Horde_Kolab_Storage_Namespace_Imap
-extends Horde_Kolab_Storage_Namespace_Config
-{
- /**
- * Constructor.
- */
- public function __construct(array $namespaces, array $configuration = array())
- {
- $c = array();
- foreach ($namespaces as $namespace) {
- if (in_array($namespace['name'], array_keys($configuration))) {
- $namespace = array_merge($namespace, $configuration[$namespace['name']]);
- }
- $c[] = $namespace;
- }
- parent::__construct($c);
- }
-}
\ No newline at end of file
diff --git a/framework/Kolab_Storage/package.xml b/framework/Kolab_Storage/package.xml
index 4fa835795..4f28ea440 100644
--- a/framework/Kolab_Storage/package.xml
+++ b/framework/Kolab_Storage/package.xml
@@ -31,8 +31,8 @@
jan@horde.org
yes
- 2010-04-27
-
+ 2010-04-28
+
0.4.0
0.1.0
@@ -78,10 +78,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -112,24 +125,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -139,9 +139,7 @@
-
-
-
+
@@ -152,7 +150,10 @@
+
+
+
@@ -260,14 +261,22 @@
-
+
+
+
+
+
+
+
+
+
@@ -286,14 +295,6 @@
-
-
-
-
-
-
-
-
@@ -308,7 +309,10 @@
+
+
+
@@ -380,7 +384,7 @@
alpha
alpha
- 2010-04-27
+ 2010-04-28
LGPL
* Added namespace support (Bug #6691).
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/AclTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/AclTest.php
index 109d8b28e..f115c1f50 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/AclTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/AclTest.php
@@ -45,17 +45,17 @@ class Horde_Kolab_Storage_AclTest extends PHPUnit_Framework_TestCase
array(
array(
'name' => 'INBOX/',
- 'type' => Horde_Kolab_Storage_Namespace::PERSONAL,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::PERSONAL,
'delimiter' => '/',
),
array(
'name' => 'user/',
- 'type' => Horde_Kolab_Storage_Namespace::OTHER,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::OTHER,
'delimiter' => '/',
),
array(
'name' => '',
- 'type' => Horde_Kolab_Storage_Namespace::SHARED,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::SHARED,
'delimiter' => '/',
)
)
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/CclientTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/CclientTest.php
index 75e96f150..86963780c 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/CclientTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/CclientTest.php
@@ -51,7 +51,7 @@ extends PHPUnit_Framework_TestCase
array()
);
$this->assertType(
- 'Horde_Kolab_Storage_Namespace',
+ 'Horde_Kolab_Storage_Driver_Namespace',
$driver->getNamespace()
);
}
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/ImapTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/ImapTest.php
index f52ae749c..754643420 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/ImapTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/ImapTest.php
@@ -52,7 +52,7 @@ extends PHPUnit_Framework_TestCase
array()
);
$this->assertType(
- 'Horde_Kolab_Storage_Namespace',
+ 'Horde_Kolab_Storage_Driver_Namespace',
$driver->getNamespace()
);
}
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/MockTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/MockTest.php
index aaed02546..78a645f50 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/MockTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/MockTest.php
@@ -67,7 +67,7 @@ extends PHPUnit_Framework_TestCase
array()
);
$this->assertType(
- 'Horde_Kolab_Storage_Namespace',
+ 'Horde_Kolab_Storage_Driver_Namespace',
$driver->getNamespace()
);
}
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/PearTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/PearTest.php
index 17d2224de..5607858e8 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/PearTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Class/Driver/PearTest.php
@@ -52,7 +52,7 @@ extends PHPUnit_Framework_TestCase
array()
);
$this->assertType(
- 'Horde_Kolab_Storage_Namespace',
+ 'Horde_Kolab_Storage_Driver_Namespace',
$driver->getNamespace()
);
}
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/FolderTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/FolderTest.php
index 5c6b9fef8..da160bff6 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/FolderTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/FolderTest.php
@@ -66,7 +66,7 @@ class Horde_Kolab_Storage_FolderTest extends PHPUnit_Framework_TestCase
$GLOBALS['language'] = 'de_DE';
$folder = new Horde_Kolab_Storage_Folder_Base(
'INBOX/Contacts',
- new Horde_Kolab_Storage_Namespace_Fixed()
+ new Horde_Kolab_Storage_Driver_Namespace_Fixed()
);
$this->assertEquals('INBOX/Contacts', $folder->name);
$this->assertTrue(is_array($folder->_data));
@@ -84,7 +84,7 @@ class Horde_Kolab_Storage_FolderTest extends PHPUnit_Framework_TestCase
$connection = $this->getMock('Horde_Kolab_Storage_Driver');
$connection->expects($this->once())
->method('getNamespace')
- ->will($this->returnValue(new Horde_Kolab_Storage_Namespace_Fixed()));
+ ->will($this->returnValue(new Horde_Kolab_Storage_Driver_Namespace_Fixed()));
$folder = new Horde_Kolab_Storage_Folder_Base('INBOX/Contacts');
$folder->restore($storage, $connection);
$folder->setName('TestAÃÃ');
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php
index 9af29823a..bbdce741e 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/NamespaceTest.php
@@ -266,43 +266,43 @@ class Horde_Kolab_Storage_NamespaceTest extends PHPUnit_Framework_TestCase
private function _getNamespaces()
{
return array(
- new Horde_Kolab_Storage_Namespace_Fixed(),
- new Horde_Kolab_Storage_Namespace_Config(
+ new Horde_Kolab_Storage_Driver_Namespace_Fixed(),
+ new Horde_Kolab_Storage_Driver_Namespace_Config(
array(
array(
- 'type' => Horde_Kolab_Storage_Namespace::PERSONAL,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::PERSONAL,
'name' => 'INBOX/',
'delimiter' => '/',
'add' => true,
),
array(
- 'type' => Horde_Kolab_Storage_Namespace::OTHER,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::OTHER,
'name' => 'user/',
'delimiter' => '/',
),
array(
- 'type' => Horde_Kolab_Storage_Namespace::SHARED,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::SHARED,
'name' => '',
'delimiter' => '/',
'prefix' => 'shared.'
),
)
),
- new Horde_Kolab_Storage_Namespace_Imap(
+ new Horde_Kolab_Storage_Driver_Namespace_Imap(
array(
array(
'name' => 'INBOX/',
- 'type' => Horde_Kolab_Storage_Namespace::PERSONAL,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::PERSONAL,
'delimiter' => '/',
),
array(
'name' => 'user/',
- 'type' => Horde_Kolab_Storage_Namespace::OTHER,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::OTHER,
'delimiter' => '/',
),
array(
'name' => '',
- 'type' => Horde_Kolab_Storage_Namespace::SHARED,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::SHARED,
'delimiter' => '/',
),
),
diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/PermissionTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/PermissionTest.php
index 47aec9e9d..8add6edd7 100644
--- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/PermissionTest.php
+++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/PermissionTest.php
@@ -124,10 +124,10 @@ class Horde_Kolab_Storage_PermissionTest extends PHPUnit_Framework_TestCase
->method('getNamespace')
->will(
$this->returnValue(
- new Horde_Kolab_Storage_Namespace_Imap(
+ new Horde_Kolab_Storage_Driver_Namespace_Imap(
array(
array(
- 'type' => Horde_Kolab_Storage_Namespace::PERSONAL,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::PERSONAL,
'name' => 'INBOX/',
'delimiter' => '/',
'add' => true,
@@ -257,10 +257,10 @@ class Horde_Kolab_Storage_PermissionTest extends PHPUnit_Framework_TestCase
->method('getNamespace')
->will(
$this->returnValue(
- new Horde_Kolab_Storage_Namespace_Imap(
+ new Horde_Kolab_Storage_Driver_Namespace_Imap(
array(
array(
- 'type' => Horde_Kolab_Storage_Namespace::PERSONAL,
+ 'type' => Horde_Kolab_Storage_Driver_Namespace::PERSONAL,
'name' => 'INBOX/',
'delimiter' => '/',
'add' => true,