/** * 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)); }