From f259f6bb431c318186f11885da43c1b7aab54777 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Sun, 13 Jun 2010 12:52:00 +0200 Subject: [PATCH] Fix permission check if a tasklist doesn't have any permissions set. --- kronolith/lib/Event/Horde.php | 19 ++++++++++++++++++- nag/lib/Api.php | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/kronolith/lib/Event/Horde.php b/kronolith/lib/Event/Horde.php index 27ad2eba8..dc55a5a4c 100644 --- a/kronolith/lib/Event/Horde.php +++ b/kronolith/lib/Event/Horde.php @@ -60,6 +60,13 @@ class Kronolith_Event_Horde extends Kronolith_Event protected $_params; /** + * The event's owner. + * + * @var string + */ + protected $_owner; + + /** * A bitmask of permissions the current user has on this object. * * @var integer @@ -143,7 +150,9 @@ class Kronolith_Event_Horde extends Kronolith_Event $this->recurrence = $recurrence; } - + if (isset($event['owner'])) { + $this->_owner = $event['owner']; + } if (isset($event['permissions'])) { $this->_permissions = $event['permissions']; } @@ -205,6 +214,14 @@ class Kronolith_Event_Horde extends Kronolith_Event */ public function hasPermission($permission, $user = null) { + if ($user === null) { + $user = $GLOBALS['registry']->getAuth(); + } + + if (isset($this->_owner) && $this->_owner == $user) { + return true; + } + if (isset($this->_permissions)) { return (bool)($this->_permissions & $permission); } diff --git a/nag/lib/Api.php b/nag/lib/Api.php index 4f2b49483..e8aca6375 100644 --- a/nag/lib/Api.php +++ b/nag/lib/Api.php @@ -1351,6 +1351,7 @@ class Nag_Api extends Horde_Registry_Api 'end' => $due_date, 'category' => $task->category, 'color' => $allowed_tasklists[$task->tasklist]->get('color'), + 'owner' => $allowed_tasklists[$task->tasklist]->get('owner'), 'permissions' => $GLOBALS['nag_shares']->getPermissions($task->tasklist, $GLOBALS['registry']->getAuth()), 'variable_length' => false, 'params' => array('task' => $task->id, -- 2.11.0