/** * Removes containers where current user has no access to * * @param Tinebase_Model_Filter_FilterGroup $_filter * @param string $_action get|update */ public function checkFilterACL(Tinebase_Model_Filter_FilterGroup $_filter, $_action = 'get') { if (!$this->_doContainerACLChecks) { if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Container ACL disabled for ' . $_filter->getModelName() . '.'); } return TRUE; } $aclFilters = $_filter->getAclFilters(); if (!$aclFilters) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Force a standard containerFilter (specialNode = all) as ACL filter.'); } $containerFilter = $_filter->createFilter('container_id', 'specialNode', 'all', array('applicationName' => $_filter->getApplicationName())); $_filter->addFilter($containerFilter); } if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Setting filter grants for action ' . $_action); } switch ($_action) { case 'get': $_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_READ, Tinebase_Model_Grants::GRANT_ADMIN)); break; case 'update': $_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_EDIT, Tinebase_Model_Grants::GRANT_ADMIN)); break; case 'export': $_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_EXPORT, Tinebase_Model_Grants::GRANT_ADMIN)); break; case 'sync': $_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_SYNC, Tinebase_Model_Grants::GRANT_ADMIN)); break; default: throw new Tinebase_Exception_UnexpectedValue('Unknown action: ' . $_action); } }
/** * Removes containers where current user has no access to * * @param Timetracker_Model_TimeaccountFilter $_filter * @param string $_action */ public function checkFilterACL(Tinebase_Model_Filter_FilterGroup $_filter, $_action = 'get') { switch ($_action) { case 'get': $_filter->setRequiredGrants(array(Timetracker_Model_TimeaccountGrants::BOOK_OWN, Timetracker_Model_TimeaccountGrants::BOOK_ALL, Timetracker_Model_TimeaccountGrants::VIEW_ALL, Tinebase_Model_Grants::GRANT_ADMIN)); break; case 'update': $_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_ADMIN)); break; case 'export': $_filter->setRequiredGrants(array(Tinebase_Model_Grants::GRANT_EXPORT, Tinebase_Model_Grants::GRANT_ADMIN)); break; default: throw new Timetracker_Exception_UnexpectedValue('Unknown action: ' . $_action); } }
public function setRequiredGrants(array $_grants) { $this->_filterGroup->setRequiredGrants($_grants); }