/** * get record grants * * @param Tinebase_Record_Abstract|Tinebase_Record_RecordSet $records */ protected function _getGrants($records) { $recordset = $records instanceof Tinebase_Record_Abstract ? new Tinebase_Record_RecordSet($this->_modelName, array($records)) : $records; if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Get grants for ' . count($recordset) . ' records.'); } $this->_grantsBackend->getGrantsForRecords($recordset); }
/** * add default grants to existing filters */ protected function _addGrantsToExistingFilters() { $pfBackend = new Tinebase_PersistentFilter_Backend_Sql(); $filters = $pfBackend->getAll(); $pfGrantsBackend = new Tinebase_Backend_Sql_Grants(array('modelName' => 'Tinebase_Model_PersistentFilterGrant', 'tableName' => 'filter_acl')); $pfGrantsBackend->getGrantsForRecords($filters); foreach ($filters as $filter) { if (count($filter->grants) > 0) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Filter ' . $filter->name . ' already has grants.'); } continue; } $grant = new Tinebase_Model_PersistentFilterGrant(array('account_type' => $filter->isPersonal() ? Tinebase_Acl_Rights::ACCOUNT_TYPE_USER : Tinebase_Acl_Rights::ACCOUNT_TYPE_ANYONE, 'account_id' => $filter->account_id, 'record_id' => $filter->getId())); $grant->sanitizeAccountIdAndFillWithAllGrants(); $filter->grants = new Tinebase_Record_RecordSet('Tinebase_Model_PersistentFilterGrant'); $filter->grants->addRecord($grant); if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Updating filter "' . $filter->name . '" with grant: ' . print_r($grant->toArray(), true)); } Tinebase_PersistentFilter::getInstance()->setGrants($filter); } }