From d6f0e6cb8baa391316ef109b18f8910417470f93 Mon Sep 17 00:00:00 2001 From: jomu Date: Fri, 6 Feb 2015 16:41:22 +0000 Subject: [PATCH] added userGroup.getUserLoginNameFromEmail support --- .../sharepoint/api/usergroup/SPUser.java | 32 +++++++++++++++---- .../sharepoint/api/usergroup/SPUserGroup.java | 25 +++++++++++++++ .../main/resources/2010/wsdl/usergroup.wsdl | 8 ++--- .../api/src/main/resources/xsd/usergroup.xsd | 21 ++++++------ .../api/usergroup/SPUserGroupTest.java | 12 ++++++- 5 files changed, 77 insertions(+), 21 deletions(-) diff --git a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUser.java b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUser.java index fd31a2c..eb343bf 100644 --- a/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUser.java +++ b/sharepoint/api/src/main/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUser.java @@ -21,28 +21,46 @@ public class SPUser extends SPJaxbObject { schemaList.add("/xsd/usergroup.xsd"); return schemaList; } - - + public String getUserID() { return getValue().id.toString(); } - + public String getUserName() { return getValue().name; } - + public String getUserLoginName() { - return getValue().loginName; + String returnValue = null; + if (getValue().loginName != null) { + returnValue = getValue().loginName; + } else if (getValue().login != null) { + returnValue = getValue().login; + } + + if (returnValue == null) { + return null; + } else { + return returnValue.substring(7); // drop [i:0#.w| + } } - + public String getUserEmail() { return getValue().email; } - + public String getUserNotes() { return getValue().notes; } + public String getDisplayName() { + return getValue().displayName; + } + + public String getEmail() { + return getValue().email; + } + } /** 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 b1a205c..032204d 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 @@ -2,9 +2,13 @@ package de.muehlencord.shared.sharepoint.api.usergroup; import com.microsoft.schemas.sharepoint.soap.usergroup.GetUserCollectionFromGroupResponse; import com.microsoft.schemas.sharepoint.soap.usergroup.GetUserInfoResponse; +import com.microsoft.schemas.sharepoint.soap.usergroup.GetUserLoginFromEmail; +import com.microsoft.schemas.sharepoint.soap.usergroup.GetUserLoginFromEmail.EmailXml; +import com.microsoft.schemas.sharepoint.soap.usergroup.GetUserLoginFromEmailResponse; import com.microsoft.schemas.sharepoint.soap.usergroup.UserGroup; import com.microsoft.schemas.sharepoint.soap.usergroup.UserGroupSoap; import de.muehlencord.shared.sharepoint.api.SPContext; +import de.muehlencord.shared.sharepoint.api.SPJaxbObject; import de.muehlencord.shared.sharepoint.api.SPObject; import de.muehlencord.shared.sharepoint.api.ServiceLogHandler; import java.io.IOException; @@ -92,6 +96,27 @@ public class SPUserGroup extends SPObject { } } + public SPUser getUserFromEmail(String emailAddress) throws JAXBException, ParserConfigurationException, SAXException, IOException, + NoSuchAlgorithmException, KeyManagementException { + + String xml = ""; + 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; + SPUser user = new SPUser(getContext()); + user.setValue(SPJaxbObject.xmlToString(rootElement.getFirstChild())); + return user; + } + } + + return null; + } + private SPUser getUser(String userLoginName) throws NoSuchAlgorithmException, KeyManagementException, MalformedURLException, JAXBException, SAXException { GetUserInfoResponse.GetUserInfoResult result = getUserGroupPort().getUserInfo("i:0#.w|" + userLoginName); // TODO why is i:0#.w| in front? diff --git a/sharepoint/api/src/main/resources/2010/wsdl/usergroup.wsdl b/sharepoint/api/src/main/resources/2010/wsdl/usergroup.wsdl index 31a6c19..e393884 100644 --- a/sharepoint/api/src/main/resources/2010/wsdl/usergroup.wsdl +++ b/sharepoint/api/src/main/resources/2010/wsdl/usergroup.wsdl @@ -96,7 +96,7 @@ - + @@ -109,7 +109,7 @@ - + @@ -129,7 +129,7 @@ - + @@ -662,7 +662,7 @@ - + diff --git a/sharepoint/api/src/main/resources/xsd/usergroup.xsd b/sharepoint/api/src/main/resources/xsd/usergroup.xsd index 2e251ee..bc447f4 100644 --- a/sharepoint/api/src/main/resources/xsd/usergroup.xsd +++ b/sharepoint/api/src/main/resources/xsd/usergroup.xsd @@ -9,15 +9,18 @@ - - - - - - - - - + + + + + + + + + + + + diff --git a/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java b/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java index 732c64a..997e432 100644 --- a/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java +++ b/sharepoint/api/src/test/java/de/muehlencord/shared/sharepoint/api/usergroup/SPUserGroupTest.java @@ -37,11 +37,21 @@ public class SPUserGroupTest extends BaseTest { } @Test + @Ignore // Depends on available sharepoint currently public void testIsUserMemberOfGroup() throws Exception { SPUserGroup ug = new SPUserGroup(context); boolean result = ug.isUserMemberOfGroup("wincor-nixdorf\\joern.muehlencord", "HQ All Members"); assertEquals ("HQ All membership", true, result); - } + + @Test + @Ignore // Depends on available sharepoint currently + public void getUserLoginNameFromEmail() throws Exception { + SPUserGroup ug = new SPUserGroup(context); + SPUser user = ug.getUserFromEmail("joern.muehlencord@wincor-nixdorf.com"); + assertEquals ("UserLogin", "wincor-nixdorf\\joern.muehlencord", user.getUserLoginName()); + } + + }