Summary | horde/kolab should also accept INBOX DOT(INBOX.) as IMAP folder name |
Queue | Kolab |
Type | Bug |
State | Resolved |
Priority | 2. Medium |
Owners | wrobel (at) horde (dot) org |
Requester | noethen (at) uni-paderborn (dot) de |
Created | 05/12/2008 (6215 days ago) |
Due | |
Updated | 03/23/2010 (5535 days ago) |
Assigned | 05/12/2008 (6215 days ago) |
Resolved | 03/23/2010 (5535 days ago) |
Milestone | |
Patch | No |
State ⇒ Resolved
Use the new namespace handler (
Bug #6691).http://git.horde.org/diff.php/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php?rt=horde-git&r1=75e12f34d697a0010aed459c02a186bead1c9998&r2=f52658e9ab1b5acf3c2d15f43a3d6f9994885022
http://git.horde.org/diff.php/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php?rt=horde-git&r1=4a1bf5515c29fe3fa47ae19f5c8c733551ce6cbc&r2=f52658e9ab1b5acf3c2d15f43a3d6f9994885022
"/" are just the most common used delimiters. We should query the
server upon connect which hierarchy separator is in use and save it in
a variable. Though I guess this is more a low priority issue as the
official Kolab servers uses "/" currently.
State ⇒ Assigned
Version ⇒
Priority ⇒ 2. Medium
Type ⇒ Bug
Summary ⇒ horde/kolab should also accept INBOX DOT(INBOX.) as IMAP folder name
Queue ⇒ Horde Base
Milestone ⇒
Patch ⇒ No
State ⇒ Unconfirmed
In some functions like getOwner() in lib/Horde/Share/kolab.php
or lib/Horde/Kolab.php
or lib/Horde/Kolab/IMAP.php
the folder-name is checked against a regular Expression:
if (!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)/)([^@]+)(@.*)?;",
$folder_path, $matches)
Some server are using "INBOX." and not "INBOX/". Would be great, if
that bug could be fixed.
function getOwner()
{
// PATCHED
if
((!preg_match(";(shared\.|INBOX[/]?|user/([^/]+)/)([^@]+)(@.*)?;",
$this->get('folder'), $matches)) &&
(!preg_match(";(shared\.|INBOX[.]?|user\.([^.]+)\.)([^@]+)(@.*)?;",
$this->get('folder'), $matches)) ) {
return PEAR::raiseError(sprintf(_("Owner of folder %s
cannot be determined."), $this->get('folder')));
}
if ((substr($matches[1], 0, 6) == 'INBOX/')||
(substr($matches[1], 0, 6) == 'INBOX.')) {
return Auth::getAuth();
} elseif ((substr($matches[1], 0, 5) == 'user/') ||
(substr($matches[1], 0, 5) == 'user.')) {
$domain = strstr(Auth::getAuth(), '@');
$user_domain = isset($matches[4]) ? $matches[4] : $domain;
return $matches[2] . $user_domain;
} elseif ($matches[1] == 'shared.') {
return 'anonymous';
}
}