/** * returns account_grants of given timeaccount * - this function caches its result (with cache tag 'container') * * @param Tinebase_Model_User|int $_accountId * @param Timetracker_Model_Timeaccount|string $_timeaccountId * @param bool $_ignoreAcl * @return array */ public static function getGrantsOfAccount($_accountId, $_timeaccountId, $_ignoreAcl = FALSE) { $cache = Tinebase_Core::getCache(); $cacheId = convertCacheId('getGrantsOfAccount' . Tinebase_Model_User::convertUserIdToInt($_accountId) . ($_timeaccountId instanceof Timetracker_Model_Timeaccount ? $_timeaccountId->getId() : $_timeaccountId) . $_ignoreAcl); $result = $cache->load($cacheId); if ($result === FALSE) { $timeaccount = $_timeaccountId instanceof Timetracker_Model_Timeaccount ? $_timeaccountId : Timetracker_Controller_Timeaccount::getInstance()->get($_timeaccountId); $containerGrantsArray = Tinebase_Container::getInstance()->getGrantsOfAccount($_accountId, $timeaccount->container_id, 'Timetracker_Model_TimeaccountGrants')->toArray(); $account_grants = new Timetracker_Model_TimeaccountGrants($containerGrantsArray); $result = $account_grants->toArray(); $cache->save($result, $cacheId, array('container')); } return $result; }