added userGroup.getUserLoginNameFromEmail support
This commit is contained in:
@ -22,7 +22,6 @@ public class SPUser extends SPJaxbObject<User> {
|
|||||||
return schemaList;
|
return schemaList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getUserID() {
|
public String getUserID() {
|
||||||
return getValue().id.toString();
|
return getValue().id.toString();
|
||||||
}
|
}
|
||||||
@ -32,7 +31,18 @@ public class SPUser extends SPJaxbObject<User> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getUserLoginName() {
|
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() {
|
public String getUserEmail() {
|
||||||
@ -43,6 +53,14 @@ public class SPUser extends SPJaxbObject<User> {
|
|||||||
return getValue().notes;
|
return getValue().notes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDisplayName() {
|
||||||
|
return getValue().displayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return getValue().email;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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.GetUserCollectionFromGroupResponse;
|
||||||
import com.microsoft.schemas.sharepoint.soap.usergroup.GetUserInfoResponse;
|
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.UserGroup;
|
||||||
import com.microsoft.schemas.sharepoint.soap.usergroup.UserGroupSoap;
|
import com.microsoft.schemas.sharepoint.soap.usergroup.UserGroupSoap;
|
||||||
import de.muehlencord.shared.sharepoint.api.SPContext;
|
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.SPObject;
|
||||||
import de.muehlencord.shared.sharepoint.api.ServiceLogHandler;
|
import de.muehlencord.shared.sharepoint.api.ServiceLogHandler;
|
||||||
import java.io.IOException;
|
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 = "<Users><User Email=\"" + emailAddress + "\"/></Users>";
|
||||||
|
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 {
|
private SPUser getUser(String userLoginName) throws NoSuchAlgorithmException, KeyManagementException, MalformedURLException, JAXBException, SAXException {
|
||||||
GetUserInfoResponse.GetUserInfoResult result = getUserGroupPort().getUserInfo("i:0#.w|" + userLoginName);
|
GetUserInfoResponse.GetUserInfoResult result = getUserGroupPort().getUserInfo("i:0#.w|" + userLoginName);
|
||||||
// TODO why is i:0#.w| in front?
|
// TODO why is i:0#.w| in front?
|
||||||
|
|||||||
@ -96,7 +96,7 @@
|
|||||||
<s:element minOccurs="0" maxOccurs="1" name="userLoginNamesXml">
|
<s:element minOccurs="0" maxOccurs="1" name="userLoginNamesXml">
|
||||||
<s:complexType mixed="true">
|
<s:complexType mixed="true">
|
||||||
<s:sequence>
|
<s:sequence>
|
||||||
<s:any/>
|
<s:any processContents='skip' />
|
||||||
</s:sequence>
|
</s:sequence>
|
||||||
</s:complexType>
|
</s:complexType>
|
||||||
</s:element>
|
</s:element>
|
||||||
@ -109,7 +109,7 @@
|
|||||||
<s:element minOccurs="0" maxOccurs="1" name="GetUserCollectionResult">
|
<s:element minOccurs="0" maxOccurs="1" name="GetUserCollectionResult">
|
||||||
<s:complexType mixed="true">
|
<s:complexType mixed="true">
|
||||||
<s:sequence>
|
<s:sequence>
|
||||||
<s:any/>
|
<s:any processContents='skip' />
|
||||||
</s:sequence>
|
</s:sequence>
|
||||||
</s:complexType>
|
</s:complexType>
|
||||||
</s:element>
|
</s:element>
|
||||||
@ -662,7 +662,7 @@
|
|||||||
<s:element minOccurs="0" maxOccurs="1" name="GetUserLoginFromEmailResult">
|
<s:element minOccurs="0" maxOccurs="1" name="GetUserLoginFromEmailResult">
|
||||||
<s:complexType mixed="true">
|
<s:complexType mixed="true">
|
||||||
<s:sequence>
|
<s:sequence>
|
||||||
<s:any/>
|
<s:any processContents='skip' />
|
||||||
</s:sequence>
|
</s:sequence>
|
||||||
</s:complexType>
|
</s:complexType>
|
||||||
</s:element>
|
</s:element>
|
||||||
|
|||||||
@ -9,15 +9,18 @@
|
|||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="User">
|
<xs:element name="User">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="Email" use="required"/>
|
<xs:attribute name="Email" use="optional"/>
|
||||||
<xs:attribute name="Flags" use="required" type="xs:integer"/>
|
<xs:attribute name="Flags" use="optional" type="xs:integer"/>
|
||||||
<xs:attribute name="ID" use="required" type="xs:integer"/>
|
<xs:attribute name="ID" use="optional" type="xs:integer"/>
|
||||||
<xs:attribute name="IsDomainGroup" use="required" type="xs:NCName"/>
|
<xs:attribute name="IsDomainGroup" use="optional" type="xs:NCName"/>
|
||||||
<xs:attribute name="IsSiteAdmin" use="required" type="xs:NCName"/>
|
<xs:attribute name="IsSiteAdmin" use="optional" type="xs:NCName"/>
|
||||||
<xs:attribute name="LoginName" use="required"/>
|
<xs:attribute name="LoginName" use="optional"/>
|
||||||
<xs:attribute name="Name" use="required"/>
|
<xs:attribute name="Name" use="optional"/>
|
||||||
<xs:attribute name="Notes" use="required"/>
|
<xs:attribute name="Notes" use="optional"/>
|
||||||
<xs:attribute name="Sid" use="required"/>
|
<xs:attribute name="Sid" use="optional"/>
|
||||||
|
<xs:attribute name="DisplayName" use="optional"/>
|
||||||
|
<xs:attribute name="Login" use="optional"/>
|
||||||
|
<xs:attribute name="SiteUser" use="optional"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
|
|||||||
@ -37,11 +37,21 @@ public class SPUserGroupTest extends BaseTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@Ignore // Depends on available sharepoint currently
|
||||||
public void testIsUserMemberOfGroup() throws Exception {
|
public void testIsUserMemberOfGroup() throws Exception {
|
||||||
SPUserGroup ug = new SPUserGroup(context);
|
SPUserGroup ug = new SPUserGroup(context);
|
||||||
boolean result = ug.isUserMemberOfGroup("wincor-nixdorf\\joern.muehlencord", "HQ All Members");
|
boolean result = ug.isUserMemberOfGroup("wincor-nixdorf\\joern.muehlencord", "HQ All Members");
|
||||||
assertEquals ("HQ All membership", true, result);
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user