/**
  * try to save a hidden account
  *
  */
 public function testSaveHiddenAccount()
 {
     $accountData = $this->objects['user']->toArray();
     $accountData['visibility'] = Tinebase_Model_User::VISIBILITY_HIDDEN;
     $accountData['container_id'] = 0;
     $account = $this->_json->saveUser($accountData);
     $this->assertTrue(is_array($account));
     $this->assertTrue(!empty($account['contact_id']));
     $appConfigDefaults = Admin_Controller::getInstance()->getConfigSettings();
     $this->assertEquals($appConfigDefaults[Admin_Model_Config::DEFAULTINTERNALADDRESSBOOK], $account['container_id']['id']);
 }
 /**
  * testUpdateUserRemoveGroup
  * 
  * @see 0006762: user still in admin role when admin group is removed
  */
 public function testUpdateUserRemoveGroup()
 {
     $account = $this->testSaveAccount();
     $internalContainer = Tinebase_Container::getInstance()->get($account['container_id']['id']);
     Tinebase_Container::getInstance()->setGrants($internalContainer, new Tinebase_Record_RecordSet('Tinebase_Model_Grants'), TRUE, FALSE);
     $adminGroupId = Tinebase_Group::getInstance()->getDefaultAdminGroup()->getId();
     $account['groups'] = array($account['accountPrimaryGroup'], $adminGroupId);
     $account['container_id'] = $account['container_id']['id'];
     $account = $this->_json->saveUser($account);
     $roles = Tinebase_Acl_Roles::getInstance()->getRoleMemberships($account['accountId']);
     $adminRole = Tinebase_Acl_Roles::getInstance()->getRoleByName('admin role');
     $this->assertEquals(array($adminRole->getId()), $roles);
     $account['accountPrimaryGroup'] = $account['accountPrimaryGroup']['id'];
     $account['groups'] = array($account['accountPrimaryGroup']);
     if (is_array($account['container_id']) && is_array($account['container_id']['id'])) {
         $account['container_id'] = $account['container_id']['id'];
     }
     $account = $this->_json->saveUser($account);
     $roles = Tinebase_Acl_Roles::getInstance()->getRoleMemberships($account['accountId']);
     $this->assertEquals(array(), $roles);
     $this->assertTrue(isset($account['last_modified_by']), 'modlog fields missing from account: ' . print_r($account, true));
     $this->assertEquals(Tinebase_Core::getUser()->accountId, $account['last_modified_by']);
 }