From: Michael J. Rubinsky Date: Thu, 20 May 2010 16:19:54 +0000 (-0400) Subject: Inject Horde_Perms object X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=8803573f569534186783002ad4d82150a2b727b8;p=horde.git Inject Horde_Perms object --- diff --git a/framework/Core/lib/Horde/Core/Factory/Share.php b/framework/Core/lib/Horde/Core/Factory/Share.php index ddf96fb41..950c759fc 100644 --- a/framework/Core/lib/Horde/Core/Factory/Share.php +++ b/framework/Core/lib/Horde/Core/Factory/Share.php @@ -79,7 +79,7 @@ class Horde_Core_Factory_Share throw new Horde_Exception((sprintf(_("\"%s\" share driver not found."), $driver))); } - $shares[$signature] = new $class($app); + $shares[$signature] = new $class($app, $this->_injector->getInstance('Horde_Perms')); } if (!isset($shares[$signature]) && diff --git a/framework/Share/lib/Horde/Share.php b/framework/Share/lib/Horde/Share.php index 7b4d7bf87..12215d2ef 100644 --- a/framework/Share/lib/Horde/Share.php +++ b/framework/Share/lib/Horde/Share.php @@ -71,13 +71,22 @@ class Horde_Share protected $_shareObject; /** + * The Horde_Perms object + * + * @var Horde_Perms + */ + protected $_permsObject; + + /** * Constructor. * * @param string $app The application that the shares belong to. + * @param Horde_Perms The permissions object */ - public function __construct($app) + public function __construct($app, Horde_Perms $perms) { $this->_app = $app; + $this->_permsObject = $perms; $this->__wakeup(); } @@ -393,7 +402,7 @@ class Horde_Share $share = $this->getShare($share); } - return $GLOBALS['injector']->getInstance('Horde_Perms')->getPermissions($share->getPermission(), $user); + return $this->_permsObject->getPermissions($share->getPermission(), $user); } /** @@ -407,6 +416,16 @@ class Horde_Share } /** + * Getter for Horde_Perms object + * + * @return Horde_Perms + */ + public function getPermsObject() + { + return $this->_permsObject; + } + + /** * Utility function to be used with uasort() for sorting arrays of * Horde_Share objects. * diff --git a/framework/Share/lib/Horde/Share/Object/Datatree.php b/framework/Share/lib/Horde/Share/Object/Datatree.php index 6b21f2732..d7728066b 100644 --- a/framework/Share/lib/Horde/Share/Object/Datatree.php +++ b/framework/Share/lib/Horde/Share/Object/Datatree.php @@ -97,8 +97,8 @@ class Horde_Share_Object_Datatree extends Horde_Share_Object if ($userid && $userid == $this->datatreeObject->get('owner')) { return true; } - // TODO: inject - return $GLOBALS['injector']->getInstance('Horde_Perms')->hasPermission($this->getPermission(), $userid, $permission, $creator); + + return $this->_shareOb->getPermsObject()->hasPermission($this->getPermission(), $userid, $permission, $creator); } /** diff --git a/framework/Share/lib/Horde/Share/Object/Sql.php b/framework/Share/lib/Horde/Share/Object/Sql.php index 2553e3e6b..6301af001 100644 --- a/framework/Share/lib/Horde/Share/Object/Sql.php +++ b/framework/Share/lib/Horde/Share/Object/Sql.php @@ -238,8 +238,7 @@ class Horde_Share_Object_Sql extends Horde_Share_Object if ($userid == $this->data['share_owner']) { return true; } - // @TODO: inject perms, don't use the injector here - return $GLOBALS['injector']->getInstance('Horde_Perms')->hasPermission($this->getPermission(), $userid, $permission, $creator); + return $this->_shareOb->getPermsObject()->hasPermission($this->getPermission(), $userid, $permission, $creator); } /**