本文整理汇总了PHP中Tinebase_Container::setGrants方法的典型用法代码示例。如果您正苦于以下问题:PHP Tinebase_Container::setGrants方法的具体用法?PHP Tinebase_Container::setGrants怎么用?PHP Tinebase_Container::setGrants使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tinebase_Container
的用法示例。
在下文中一共展示了Tinebase_Container::setGrants方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _inspectBeforeUpdate
/**
* inspect update of one record (before update)
*
* @param Tinebase_Record_Interface $_record the update record
* @param Tinebase_Record_Interface $_oldRecord the current persistent record
* @return void
* @throws Tinebase_Exception_Record_NotAllowed
*
* @todo if shared -> personal remove all admins except new owner
*/
protected function _inspectBeforeUpdate($_record, $_oldRecord)
{
if ($_oldRecord->application_id !== $_record->application_id) {
throw new Tinebase_Exception_Record_NotAllowed('It is not allowed to change the application of a container.');
}
$_record->account_grants = $this->_convertGrantsToRecordSet($_record->account_grants);
Tinebase_Container::getInstance()->checkContainerOwner($_record);
$this->_containerController->setGrants($_record, $_record->account_grants, TRUE, FALSE);
}
示例2: testGetSearchContainerWithoutReadButWithAdminGrant
/**
* testGetSearchContainerWithoutReadButWithAdminGrant
*/
public function testGetSearchContainerWithoutReadButWithAdminGrant()
{
$newGrants = new Tinebase_Record_RecordSet('Tinebase_Model_Grants');
$newGrants->addRecord(new Tinebase_Model_Grants(array('account_id' => Tinebase_Core::getUser()->getId(), 'account_type' => 'user', Tinebase_Model_Grants::GRANT_READ => false, Tinebase_Model_Grants::GRANT_ADD => true, Tinebase_Model_Grants::GRANT_EDIT => true, Tinebase_Model_Grants::GRANT_DELETE => true, Tinebase_Model_Grants::GRANT_ADMIN => true)));
$grants = $this->_instance->setGrants($this->objects['initialContainer'], $newGrants);
$container = $this->_instance->getContainerById($this->objects['initialContainer']);
$this->assertTrue(is_object($container));
$containers = $this->_instance->getPersonalContainer(Tinebase_Core::getUser(), 'Addressbook', Tinebase_Core::getUser(), Tinebase_Model_Grants::GRANT_READ);
$container = $containers->find('name', $this->objects['initialContainer']->name);
$this->assertTrue(is_object($container));
}
示例3: testSetGrantsCacheInvalidation
/**
* cache invalidation needs a second
*/
public function testSetGrantsCacheInvalidation()
{
$container = $this->objects['initialContainer'];
$sclever = Tinebase_Helper::array_value('sclever', Zend_Registry::get('personas'));
$this->assertEquals(FALSE, $this->_instance->hasGrant($sclever->getId(), $container->getId(), Tinebase_Model_Grants::GRANT_READ), 'sclever should _not_ have a read grant');
// have readGrant for sclever
$this->_instance->setGrants($container->getId(), new Tinebase_Record_RecordSet('Tinebase_Model_Grants', array(array('account_id' => Tinebase_Core::getUser()->getId(), 'account_type' => 'user', Tinebase_Model_Grants::GRANT_ADMIN => true), array('account_id' => $sclever->getId(), 'account_type' => 'user', Tinebase_Model_Grants::GRANT_READ => true))), TRUE);
sleep(1);
$this->assertEquals(TRUE, $this->_instance->hasGrant($sclever->getId(), $container->getId(), Tinebase_Model_Grants::GRANT_READ), 'sclever _should have_ a read grant');
// remove readGrant for sclever again
$this->_instance->setGrants($container->getId(), new Tinebase_Record_RecordSet('Tinebase_Model_Grants', array(array('account_id' => Tinebase_Core::getUser()->getId(), 'account_type' => 'user', Tinebase_Model_Grants::GRANT_ADMIN => true), array('account_id' => $sclever->getId(), 'account_type' => 'user', Tinebase_Model_Grants::GRANT_READ => false))), TRUE);
sleep(1);
$this->assertEquals(FALSE, $this->_instance->hasGrant($sclever->getId(), $container->getId(), Tinebase_Model_Grants::GRANT_READ), 'sclever should _not_ have a read grant');
}