Using the Strategy Java Web SDK, it is possible to search for Strategy User objects and access their properties. The following example shows how to search the metadata for a specific user, then output some of its properties such as the user's full name and if it is enabled:
package customclasses.misc;
import com.Strategy.webapi.*;
import com.Strategy.web.objects.*;
import com.Strategy.web.objects.WebIServerSession;
import com.Strategy.web.objects.WebObjectsFactory;
import com.Strategy.web.objects.admin.users.WebUser;
import com.Strategy.web.objects.WebFolder;
import com.Strategy.web.objects.WebObjectSource;
public class FindUser {
public FindUser() {
super();
}
public static void main(String[] args) {
// create factory object
WebObjectsFactory factory = WebObjectsFactory.getInstance();
WebIServerSession serverSession = factory.getIServerSession();
// set up session properties
serverSession.setServerName("Server");
serverSession.setServerPort(0);
serverSession.setProjectName("Project");
serverSession.setLogin("uid");
serverSession.setPassword("pwd");
WebObjectSource wos = factory.getObjectSource();
WebUser user = null;
WebSearch search = wos.getNewSearchObject();
String strUserName = "testuser";
try {
search.setAbbreviationPattern(strUserName);
search.setSearchFlags(search.getSearchFlags() | EnumDSSXMLSearchFlags.DssXmlSearchAbbreviationWildCard);
//asynchronized search
search.setAsync(false);
//search for user
search.types().add(new Integer(EnumDSSXMLObjectSubTypes.DssXmlSubTypeUser));
//search on repository
search.setDomain(EnumDSSXMLSearchDomain.DssXmlSearchDomainRepository);
search.submit();
WebFolder f = search.getResults();
//since login id is unique identity, if found, the first one is the user
if (f.size() > 0) {
user = (WebUser) f.get(0);
user.populate();
System.out.println(user.getLoginName());
System.out.println(user.getFullName());
System.out.println("Is user enabled? " + user.isEnabled());
}
} catch (Exception e) {
}
}
}