コード例 #1
0
 /**
  * converts Tinebase_Record_Abstract to external format
  *
  * @param  Tinebase_Record_Abstract $_record
  * @return mixed
  */
 public function fromTine20Model(Tinebase_Record_Abstract $_record)
 {
     $jsonData = parent::fromTine20Model($_record);
     if (Tinebase_Core::getUser()->hasRight('Calendar', Calendar_Acl_Rights::MANAGE_RESOURCES)) {
         $jsonData['grants'] = Tinebase_Container::getInstance()->getGrantsOfContainer($_record->container_id, TRUE)->toArray();
         $jsonData['grants'] = Tinebase_Frontend_Json_Container::resolveAccounts($jsonData['grants']);
     }
     return $jsonData;
 }
コード例 #2
0
ファイル: Json.php プロジェクト: rodrigofns/ExpressoLivre3
 /**
  * returns record prepared for json transport
  *
  * @param Tinebase_Record_Interface $_record
  * @return array record data
  */
 protected function _recordToJson($_record)
 {
     $result = parent::_recordToJson($_record);
     if ($_record instanceof Tinebase_Model_Container) {
         $result['account_grants'] = Tinebase_Frontend_Json_Container::resolveAccounts($result['account_grants']);
     }
     return $result;
 }
 /**
  * returns multiple records prepared for json transport
  *
  * @param Tinebase_Record_RecordSet $_records Tinebase_Record_Abstract
  * @param Tinebase_Model_Filter_FilterGroup
  * @param Tinebase_Model_Pagination $_pagination
  * @return array data
  * 
  * @todo move to converter
  * @todo get multiple grants at once
  */
 protected function _multipleRecordsToJson(Tinebase_Record_RecordSet $_records, $_filter = NULL, $_pagination = NULL)
 {
     $result = parent::_multipleRecordsToJson($_records, $_filter);
     foreach ($result as $idx => $recordArray) {
         $recordIdx = $_records->getIndexById($recordArray['id']);
         try {
             if (!is_object($_records[$recordIdx]->filters)) {
                 throw new Tinebase_Exception_UnexpectedValue('no filter group found');
             }
             $result[$idx]['filters'] = $_records[$recordIdx]->filters->toArray(TRUE);
         } catch (Exception $e) {
             if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) {
                 Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . ' Skipping filter: ' . $e->getMessage());
             }
             unset($result[$idx]);
             continue;
         }
         // resolve grant users/groups
         if (isset($result[$idx]['grants'])) {
             $result[$idx]['grants'] = Tinebase_Frontend_Json_Container::resolveAccounts($result[$idx]['grants']);
             $result[$idx]['account_grants'] = Tinebase_PersistentFilter::getInstance()->getGrantsOfAccount(Tinebase_Core::getUser(), $_records[$recordIdx])->toArray();
         }
     }
     return array_values($result);
 }