/**
  * 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;
 }