added userGroup.getUserLoginNameFromEmail support
This commit is contained in:
@ -22,7 +22,6 @@ public class SPUser extends SPJaxbObject<User> {
|
||||
return schemaList;
|
||||
}
|
||||
|
||||
|
||||
public String getUserID() {
|
||||
return getValue().id.toString();
|
||||
}
|
||||
@ -32,7 +31,18 @@ public class SPUser extends SPJaxbObject<User> {
|
||||
}
|
||||
|
||||
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() {
|
||||
@ -43,6 +53,14 @@ public class SPUser extends SPJaxbObject<User> {
|
||||
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.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 = "<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 {
|
||||
GetUserInfoResponse.GetUserInfoResult result = getUserGroupPort().getUserInfo("i:0#.w|" + userLoginName);
|
||||
// TODO why is i:0#.w| in front?
|
||||
|
||||
@ -96,7 +96,7 @@
|
||||
<s:element minOccurs="0" maxOccurs="1" name="userLoginNamesXml">
|
||||
<s:complexType mixed="true">
|
||||
<s:sequence>
|
||||
<s:any/>
|
||||
<s:any processContents='skip' />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
@ -109,7 +109,7 @@
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetUserCollectionResult">
|
||||
<s:complexType mixed="true">
|
||||
<s:sequence>
|
||||
<s:any/>
|
||||
<s:any processContents='skip' />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
@ -662,7 +662,7 @@
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetUserLoginFromEmailResult">
|
||||
<s:complexType mixed="true">
|
||||
<s:sequence>
|
||||
<s:any/>
|
||||
<s:any processContents='skip' />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
|
||||
@ -9,15 +9,18 @@
|
||||
</xs:element>
|
||||
<xs:element name="User">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="Email" use="required"/>
|
||||
<xs:attribute name="Flags" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="ID" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="IsDomainGroup" use="required" type="xs:NCName"/>
|
||||
<xs:attribute name="IsSiteAdmin" use="required" type="xs:NCName"/>
|
||||
<xs:attribute name="LoginName" use="required"/>
|
||||
<xs:attribute name="Name" use="required"/>
|
||||
<xs:attribute name="Notes" use="required"/>
|
||||
<xs:attribute name="Sid" use="required"/>
|
||||
<xs:attribute name="Email" use="optional"/>
|
||||
<xs:attribute name="Flags" use="optional" type="xs:integer"/>
|
||||
<xs:attribute name="ID" use="optional" type="xs:integer"/>
|
||||
<xs:attribute name="IsDomainGroup" use="optional" type="xs:NCName"/>
|
||||
<xs:attribute name="IsSiteAdmin" use="optional" type="xs:NCName"/>
|
||||
<xs:attribute name="LoginName" use="optional"/>
|
||||
<xs:attribute name="Name" use="optional"/>
|
||||
<xs:attribute name="Notes" use="optional"/>
|
||||
<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:element>
|
||||
</xs:schema>
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user