diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java index 7092fb6..6b58176 100644 --- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java +++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/lists/SPList.java @@ -64,13 +64,13 @@ public class SPList extends SPJaxbObject { } /* *** queries *** */ - public java.util.List> getListItems(java.util.List listColumnNames, String rowLimit) throws NoSuchAlgorithmException, + public java.util.List> getListItems(java.util.List listColumnNames, int rowLimit) throws NoSuchAlgorithmException, KeyManagementException, JAXBException, MalformedURLException, SAXException, ParserConfigurationException, IOException { return getListItems(listColumnNames, rowLimit, null); } - public java.util.List> getListItems(java.util.List listColumnNames, String rowLimit, String queryString) throws + public java.util.List> getListItems(java.util.List listColumnNames, int rowLimit, String queryString) throws NoSuchAlgorithmException, KeyManagementException, JAXBException, MalformedURLException, SAXException, ParserConfigurationException, IOException { @@ -85,9 +85,10 @@ public class SPList extends SPJaxbObject { } QueryOptions queryOptions = new QueryOptions(); String webId = null; + String rowLimitString = Integer.toString(rowLimit); GetListItemsResponse.GetListItemsResult result = getListsPort(). - getListItems(getValue().name, viewName, query, viewFields, rowLimit, queryOptions, webId); + getListItems(getValue().name, viewName, query, viewFields, rowLimitString, queryOptions, webId); java.util.List> returnList = new LinkedList<>(); if (result != null && result.getContent() != null) { @@ -187,7 +188,7 @@ public class SPList extends SPJaxbObject { } /* *** information & tools *** */ - public Map getLookupValueMap(String value, String rowLimit) throws NoSuchAlgorithmException, + public Map getLookupValueMap(String value, int rowLimit) throws NoSuchAlgorithmException, KeyManagementException, JAXBException, MalformedURLException, SAXException, ParserConfigurationException, IOException { // get list values from sharepoint diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroup.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroup.java index 032204d..8df0028 100644 --- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroup.java +++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroup.java @@ -50,7 +50,12 @@ public class SPUserGroup extends SPObject { if (user == null) { throw new SAXException("User not found"); } - getUserGroupPort().removeUserFromGroup(groupName, user.getUserLoginName()); + if (userLoginName.startsWith("i:0#.w|")) { + getUserGroupPort().removeUserFromGroup(groupName, user.getUserLoginName()); + } else { + getUserGroupPort().removeUserFromGroup(groupName, "i:0#.w|" + user.getUserLoginName()); + } + } public boolean isUserMemberOfGroup(String userLoginName, String groupName) throws NoSuchAlgorithmException, KeyManagementException, MalformedURLException { @@ -78,6 +83,23 @@ public class SPUserGroup extends SPObject { } } + public SPUsers getUsersFromGroup(String groupName) throws NoSuchAlgorithmException, KeyManagementException, MalformedURLException, JAXBException, SAXException { + GetUserCollectionFromGroupResponse.GetUserCollectionFromGroupResult result = getUserGroupPort().getUserCollectionFromGroup(groupName); + if ((result != null) && (result.getContent() != null) && (!result.getContent().isEmpty())) { + Object value = result.getContent().get(0); + if (value instanceof Element) { + Element rootElement = (Element) value; + SPUsers users = new SPUsers(getContext()); + String usersString = SPUsers.xmlToString(rootElement.getFirstChild()); + users.setValue(usersString); + return users; + } + } + + return null; + + } + public String getUserId(String userLoginName) throws NoSuchAlgorithmException, KeyManagementException, MalformedURLException, JAXBException, SAXException { SPUser user = getUser(userLoginName); if (user == null) { @@ -96,24 +118,25 @@ public class SPUserGroup extends SPObject { } } + // TODO does not return full object, how to refresh the object to get all attributes? public SPUser getUserFromEmail(String emailAddress) throws JAXBException, ParserConfigurationException, SAXException, IOException, NoSuchAlgorithmException, KeyManagementException { String xml = ""; - EmailXml emailXml = new GetUserLoginFromEmail.EmailXml(); + EmailXml emailXml = new GetUserLoginFromEmail.EmailXml(); emailXml.getContent().add(SPJaxbObject.createSharePointCAMLNode(xml)); // Node userNode = user.createSharePointCAMLNode(); GetUserLoginFromEmailResponse.GetUserLoginFromEmailResult result = getUserGroupPort().getUserLoginFromEmail(emailXml); if ((result != null) && (!result.getContent().isEmpty())) { Object content = result.getContent().get(0); if (content instanceof Element) { - Element rootElement = (Element) content; + Element rootElement = (Element) content; SPUser user = new SPUser(getContext()); user.setValue(SPJaxbObject.xmlToString(rootElement.getFirstChild())); return user; } } - + return null; } diff --git a/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/lists/SPListTest.java b/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/lists/SPListTest.java index 93307cd..b2da06d 100644 --- a/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/lists/SPListTest.java +++ b/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/lists/SPListTest.java @@ -45,7 +45,7 @@ public class SPListTest extends BaseTest { java.util.List columns = new ArrayList<>(); columns.add("Title"); columns.add("ID"); - java.util.List> countryCodes = list.getListItems(columns, "300"); + java.util.List> countryCodes = list.getListItems(columns, 300); Map data = new HashMap<>(); data.put("Title", "Test"); @@ -65,7 +65,7 @@ public class SPListTest extends BaseTest { SPList list = instance.getSpListByTitle("Questionnaire"); assertNotNull(list); String listName = list.getListName(); - assertEquals ("Listname", "{4728157C-CFA4-447E-8863-170133FDC351}", listName); + assertEquals("Listname", "{4728157C-CFA4-447E-8863-170133FDC351}", listName); Map data = new HashMap<>(); data.put(list.getColumnNameByDisplayName("Country"), "357;#DE"); @@ -101,44 +101,44 @@ public class SPListTest extends BaseTest { // columns.add("CountryCode"); columns.add("Title"); columns.add("ID"); - java.util.List> smallList = list.getListItems(columns, "30"); + java.util.List> smallList = list.getListItems(columns, 30); assertNotNull(smallList); assertEquals("Size smallList", 30, smallList.size()); - java.util.List> bigList = list.getListItems(columns, "300"); + java.util.List> bigList = list.getListItems(columns, 300); assertNotNull(bigList); assertEquals("Size bigList", 249, bigList.size()); } - + @Test @Ignore // Depends on available sharepoint currently public void testGetListItemsQuery() throws Exception { SPLists instance = new SPLists(context); SPList list = instance.getSpListByTitle("Questionnaire_Countries"); assertNotNull(list); - java.util.List columns = new ArrayList<>(); + java.util.List columns = new ArrayList<>(); columns.add("Title"); columns.add("ID"); - + // create query String queryString = "" + "" + "DE" + ""; - - java.util.List> smallList = list.getListItems(columns, "30",queryString); + + java.util.List> smallList = list.getListItems(columns, 30, queryString); // the list contains more than one item but title is a unique value, so it can only // return one row if filtered to one country assertNotNull(smallList); assertEquals("Size smallList", 1, smallList.size()); - } + } @Test @Ignore // Depends on available sharepoint currently public void testGetLookupValueMap() throws Exception { SPLists instance = new SPLists(context); SPList list = instance.getSpListByTitle("Questionnaire_Countries"); - Map lookupValues = list.getLookupValueMap("Title", "0"); + Map lookupValues = list.getLookupValueMap("Title", 0); System.out.println(lookupValues); } @@ -148,14 +148,14 @@ public class SPListTest extends BaseTest { public void testGetColumnNameByDisplayName() throws Exception { SPLists instance = new SPLists(context); SPList list = instance.getSpListByTitle("Questionnaire"); - assertEquals ("Displayname of Current OS", "Current_x0020_OS", list.getColumnNameByDisplayName("Current OS")); + assertEquals("Displayname of Current OS", "Current_x0020_OS", list.getColumnNameByDisplayName("Current OS")); } - + @Test @Ignore // Depends on available sharepoint currently public void testGetItemCount() throws Exception { SPLists instance = new SPLists(context); SPList list = instance.getSpListByTitle("Questionnaire"); - assertTrue (list.getItemCount() > 0); + assertTrue(list.getItemCount() > 0); } }