Example #1
0
 /**
  * saves and returns container
  * 
  * @param string $_type
  * @return array
  */
 protected function _saveContainer($_type = Tinebase_Model_Container::TYPE_SHARED)
 {
     $data = array('name' => 'testcontainer', 'type' => $_type, 'backend' => 'Sql', 'application_id' => Tinebase_Application::getInstance()->getApplicationByName('Addressbook')->getId());
     $container = $this->_json->saveContainer($data);
     $this->objects['container'] = $container['id'];
     $this->assertEquals($data['name'], $container['name']);
     return $container;
 }
 /**
  * testUpdateGroupMembershipAndContainerGrants
  * 
  * @see 0007150: container grants are not updated if group memberships change
  */
 public function testUpdateGroupMembershipAndContainerGrants()
 {
     $container = $this->_saveContainer();
     $adminGroup = Tinebase_Group::getInstance()->getDefaultAdminGroup();
     $container['account_grants'] = array(array('account_id' => $adminGroup->getId(), 'account_type' => 'group', Tinebase_Model_Grants::GRANT_READ => true, Tinebase_Model_Grants::GRANT_ADD => true, Tinebase_Model_Grants::GRANT_EDIT => true, Tinebase_Model_Grants::GRANT_DELETE => false, Tinebase_Model_Grants::GRANT_ADMIN => true));
     $containerUpdated = $this->_json->saveContainer($container);
     $userArray = $this->_createUser();
     Tinebase_Group::getInstance()->setGroupMembers($adminGroup->getId(), array($userArray['accountId']));
     $containers = Tinebase_Container::getInstance()->getContainerByACL($userArray['accountId'], 'Addressbook', Tinebase_Model_Grants::GRANT_ADD);
     $this->assertTrue(count($containers->filter('name', 'testcontainer')) === 1, 'testcontainer ' . print_r($containerUpdated, TRUE) . ' not found: ' . print_r($containers->toArray(), TRUE));
 }