gunnar: server/php-kolab/Kolab_Freebusy/Freebusy Cache.php, 1.5, 1.6 Page.php, 1.3, 1.4
cvs at kolab.org
cvs at kolab.org
Thu Feb 7 07:07:04 CET 2008
Author: gunnar
Update of /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy
In directory doto:/tmp/cvs-serv5401/Freebusy
Modified Files:
Cache.php Page.php
Log Message:
Fixing the path logic for these classes.
Index: Cache.php
===================================================================
RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy/Cache.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- Cache.php 5 Feb 2008 17:04:13 -0000 1.5
+++ Cache.php 7 Feb 2008 06:07:02 -0000 1.6
@@ -48,13 +48,11 @@
function store($access)
{
- $folder = $this->_getFolder($access);
-
/* Now we really need the free/busy library */
require_once('Horde/Kolab/Freebusy.php');
$fb = &new Horde_Kolab_Freebusy();
- $result = $fb->connect($folder);
+ $result = $fb->connect($access->imap_folder);
if (is_a($result, 'PEAR_Error')) {
return $result;
}
@@ -65,7 +63,7 @@
$vCal;
}
- $fbfilename = $this->_getFilename($folder, $access->owner);
+ $fbfilename = $this->_getFilename($access->folder, $access->owner);
$c_pvcal = &new FreeBusyCacheFile_pvcal($this->_cache_dir, $fbfilename);
$c_acl = &new FreeBusyCacheFile_acl($this->_cache_dir, $fbfilename);
@@ -130,8 +128,8 @@
function &loadPartial(&$access, $extended)
{
- $folder = $this->_getFolder($access);
- $file = $this->_getFilename($folder, $access->owner);
+ $fbfilename = $this->_getFilename($access->folder, $access->owner);
+
$aclcache = &FreeBusyCacheDB_acl::singleton('acl', $this->_cache_dir);
$relevant = false;
@@ -144,7 +142,7 @@
if (!$relevant) {
return PEAR::raiseError(sprintf(_("Folder %s is irrelevant for user %s."),
- $folder, $access->user));
+ $access->imap_folder, $access->user));
}
if ($extended) {
@@ -171,16 +169,21 @@
}
$filesnames = array();
- $c_file = $this->_getFilename($access->user, $access->owner);
+ $owner = $access->owner;
+ if (ereg('(.*)@(.*)', $owner, $regs)) {
+ $owner = $regs[2] . '/' . $regs[1];
+ }
+ $user = $access->user;
+ if (ereg('(.*)@(.*)', $user, $regs)) {
+ $user = $regs[2] . '/' . $regs[1];
+ }
+ $c_file = str_replace("\0", '', str_replace('.', '^', $user . '/' . $owner));
+
$c_vcal = &new FreeBusyCacheFile_vcal($this->_cache_dir, $c_file);
/* If the current vCal cache did not expire, we can deliver it */
if (!$c_vcal->expired($files)) {
- $vCal = $c_vcal->loadVcal();
- if (is_a($vCal, 'PEAR_Error')) {
- return $vCal;
- }
- return $vCal;
+ return $c_vcal->loadVcal();
}
// Create the new iCalendar.
@@ -276,52 +279,8 @@
if (ereg('(.*)@(.*)', $owner, $regs)) {
$owner = $regs[2] . '/' . $regs[1];
}
- if ($folder) {
- if (ereg('(.*)@(.*)', $folder, $regs)) {
- $folder = $regs[2] . '/' . $regs[1];
- }
- $filename = $owner . '/' . $folder;
- }
- return str_replace("\0", '', str_replace('.', '^', $filename));
- }
-
- function _getFolder($access)
- {
- $userdom = false;
- $ownerdom = false;
- if (ereg( '(.*)@(.*)', $access->user, $regs)) {
- // Regular user
- $user = $regs[1];
- $userdom = $regs[2];
- } else {
- $user = $access->user;
- }
-
- if(ereg( '(.*)@(.*)', $access->owner, $regs)) {
- // Regular owner
- $owner = $regs[1];
- $ownerdom = $regs[2];
- } else {
- $owner = $access->owner;
- }
-
- $fldrcomp = array();
- if ($user == $owner) {
- $fldrcomp[] = 'INBOX';
- } else {
- $fldrcomp[] = 'user';
- }
-
- if (!empty($access->folder)) {
- $fldrcomp[] = $access->folder;
- }
-
- $folder = join('/', $fldrcomp);
- if ($ownerdom && !$userdom) {
- $folder .= '@' . $ownerdom;
- }
- return $folder;
+ return str_replace("\0", '', str_replace('.', '^', $owner . '/' . $folder));
}
function &_fetchRemote($servers, $access)
Index: Page.php
===================================================================
RCS file: /kolabrepository/server/php-kolab/Kolab_Freebusy/Freebusy/Page.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Page.php 6 Feb 2008 08:00:27 -0000 1.3
+++ Page.php 7 Feb 2008 06:07:02 -0000 1.4
@@ -191,6 +191,13 @@
var $folder;
/**
+ * The IMAP path of folder we try to access
+ *
+ * @var string
+ */
+ var $imap_folder;
+
+ /**
* The requested owner
*
* @var string
@@ -459,7 +466,48 @@
} else {
$this->groups[] = $this->user;
}
+ $this->imap_folder = $this->_getImapFolder();
+ }
+
+ function _getImapFolder()
+ {
+ $userdom = false;
+ $ownerdom = false;
+ if (ereg( '(.*)@(.*)', $this->user, $regs)) {
+ // Regular user
+ $user = $regs[1];
+ $userdom = $regs[2];
+ } else {
+ $user = $this->user;
+ }
+
+ if(ereg( '(.*)@(.*)', $this->owner, $regs)) {
+ // Regular owner
+ $owner = $regs[1];
+ $ownerdom = $regs[2];
+ } else {
+ $owner = $this->owner;
+ }
+
+ $fldrcomp = array();
+ if ($user == $owner) {
+ $fldrcomp[] = 'INBOX';
+ } else {
+ $fldrcomp[] = 'user';
+ $fldrcomp[] = $owner;
+ }
+
+ if (!empty($this->folder)) {
+ $fldrcomp[] = $this->folder;
+ }
+
+ $folder = join('/', $fldrcomp);
+ if ($ownerdom && !$userdom) {
+ $folder .= '@' . $ownerdom;
+ }
+ return $folder;
}
+
}
class FreeBusyView {
More information about the commits
mailing list