ALM_How to update the access list using java or OSLC api.
Hi all,
The Access Control for my project area is selected as "Users in the access list only".
I am able to get the list of users already present in the access list by using RTC Api code snippet as below.
IReadAccessListHandle accessListHandle=area.getReadAccessList();
IReadAccessList iReadAccessList = (IReadAccessList) itemManager.fetchCompleteItem(accessListHandle, itemManager.DEFAULT,new NullProgressMonitor());
IContributorHandle[] memberHandles=iReadAccessList.getContributors();
But i am unable to find any method to update this list.
One answer
This is easy enough to find for the Java API, provided you follow the hint in https://rsjazz.wordpress.com/2013/03/20/understanding-and-using-the-rtc-java-client-api/ to setup the RTC Eclipse client with the SDK.
That allows to search e.g. for the stuff you use un your question and in 2 minute you can find the JUnit test cases with the working code. Foe example you find com.ibm.team.process.internal.client.tests.ProcessWorkingCopyTests.testAddToAndRemoveFromProjectAreaAccessList()
with this code:
public void testAddToAndRemoveFromProjectAreaAccessList() throws TeamRepositoryException { // This will be the list that we expect at the end: user1, guest1, and guest2 List expectedUsers = new ArrayList(); // First, set up the project area by manually adding members to the access list. IContributor user1 = repo.contributorManager().fetchContributorByUserId(TestUserNames.TEST_JAZZ_USER1, null); expectedUsers.add(user1); IContributor user2 = repo.contributorManager().fetchContributorByUserId(TestUserNames.TEST_JAZZ_USER2, null); IReadAccessListHandle accessHandle = fProjectArea.getReadAccessList(); IReadAccessList accessList = (IReadAccessList) repo.itemManager().fetchCompleteItem(accessHandle, IItemManager.REFRESH, null).getWorkingCopy(); accessList.addContributors(new IContributorHandle[] { user1, user2 }); getProcessItemService().save(accessList, null);IContributor guest1 = repo.contributorManager().fetchContributorByUserId(TestUserNames.TEST_JAZZ_GUEST1, null); expectedUsers.add(guest1); IContributor guest2 = repo.contributorManager().fetchContributorByUserId(TestUserNames.TEST_JAZZ_GUEST2, null); expectedUsers.add(guest2); // Make the working copy changes IProjectArea projectArea = getProjectAreaWithSettings(); fWorkingCopy = (IProcessAreaWorkingCopy) getProcessItemService().getWorkingCopyManager().createPrivateWorkingCopy(projectArea); syncInitializeWorkingCopy(fWorkingCopy, null); ProjectAreaAccessControlWorkingCopy accessControl = ((ProjectAreaWorkingCopy) fWorkingCopy).getAccessControl(); accessControl.addContributor(guest1); accessControl.addContributor(guest2); accessControl.removeContributor(user2); fWorkingCopy.save(null); fWorkingCopy.dispose();