User Accounts
Creating user accounts
The following sample creates a user account record. Prerequisite to working with user records, a corresponding contact (type person) record must already exist in TeamConnect In addition, you need to get the following information before writing an application using Web Services: the unique key of the related contact record.
Code Snippet
// this sample assumes a contact record (type person) already exists with the
unique key (String) value equal to contactUniqueKey
protected UserAccountRepository userAccountRepository;
private String insertUserAccount() throws Exception {
String userAccountName = "John_Doe";
UserAccountCreate userAccount = new UserAccountCreate();
//username is a required field userAccount.setUsername(userAccountName);
//password is a required field userAccount.setPassword("p@ssw0rd");
//contactUniqueKey is a required field userAccount.setContactUniqueKey(contactUniqueKey);
userAccount.setShortDescription("new user hired 10/01/2008, business administrator");
userAccount.setUserType(UserType.NORMAL);
userAccount.setActive(true);
String uniqueKey = userAccountRepository.insertUserAccount(userAccount);
return uniqueKey;
}
Updating user accounts
The following sample updates an existing user account record by changing the password, changing the user type, and inactivating the user account.
Note: In actual business usage, if you are inactivating a user account, it is unlikely you would need to change other properties but the samples are provided for you to use as necessary.
Code Snippet
// this sample assumes a user record already exists with the unique key
(String) value equal to uniqueKey
protected UserAccountRepository userAccountRepository;
public void test_updateUserAccount() throws Exception {
UserAccountUpdate userUpdate = new UserAccountUpdate();
//set the uniqueKey with the String value of the target user record
to identify which record you are updating
userUpdate.setUniqueKey(uniqueKey);
//update the existing password userUpdate.setPassword("newP@ssw0rd");
//update the existing userType userUpdate.setUserType(UserType.LIMITED);
//inactive the user account userUpdate.setActive(false);
userAccountRepository.updateUserAccount(userUpdate);
}
Reading user accounts
The following sample reads the specified properties of a user account record.
Code Snippet
//define the list of user record properties to return with the readUserAccount results
protected UserAccountRepository userAccountRepository;
private List<String> getProperties() {
List<String> properties = new List<String>();
properties.add("username");
properties.add("active");
properties.add("password");
properties.add("contact");
properties.add("shortDescription");
properties.add("uniqueKey");
properties.add("userType");
return properties;
}
public UserAccount test_readUserAccount() throws Exception {
//it is assumed that a user record exists with the unique key equal to String, uniqueKey
UserAccount searchedUser = userAccountRepository.readUserAccount(uniqueKey, getProperties());
return searchedUser;
}
Searching user accounts
The following sample searches users by given search criteria and returns the specified properties of the resulting user account records.
Code Snippet
protected UserAccountRepository userAccountRepository;
private List<UserAccount> test_readUserAccountsByCriteria() throws Exception {
// Criterion for user account searching
StringFieldCriterion fieldCriterion = new StringFieldCriterion();
fieldCriterion.setComparator(StringComparator.EQUALS_ENFORCE_CASE);
LegacySearchFieldPathExpression fieldPathExpression = new LegacySearchFieldPathExpression();
fieldPathExpression.setSearchKeyPath("username");
fieldCriterion.setFieldPath(fieldPathExpression);
fieldCriterion.getValue().add("JohnDoe");
FieldSearchClause searchCriteria = new FieldSearchClause();
searchCriteria.setOperator(LogicOperator.AND);
searchCriteria.getCriteria().add(fieldCriterion);
users = userAccountRepository.readUserAccountsByCriteria(searchCriteria, 100,
getPropertiesToRead());
}
private List<String> getProperties() {
List<String> properties = new List<String>();
properties.add("username");
properties.add("active");
properties.add("password");
properties.add("contact");
properties.add("shortDescription");
properties.add("uniqueKey");
properties.add("userType");
return properties;
}
Deleting user accounts
The following sample deletes a user account record with a given unique key.
Code Snippet
//for this sample it is assumed that a user record exists with a unique key String equal to uniqueKey
protected UserAccountRepository userAccountRepository;
public void test_deleteUserAccount() throws Exception {
userAccountRepository.deleteUserAccount(uniqueKey);
}

