Saturday, August 17, 2013

How to delete an user in liferay 6.1.20 GA2 programmatically

private static void deleteUser(long userId) {
try {
UserLocalServiceUtil.deleteUser(userId);
} catch (PortalException e1) {
e1.printStackTrace();
} catch (SystemException e1) {
e1.printStackTrace();
}
}

Update an User with Phone,Address and Contact details in Liferay 6.1.0 GA2 Programmatically

Update an User with Phone,Address and Contact

User updateUser = UserLocalServiceUtil.getUser(Long
.parseLong(userId));
Long companyId = updateUser.getCompanyId();
List<Address> updateAddress = (List<Address>) AddressLocalServiceUtil
.getAddresses(updateUser.getCompanyId(),
Contact.class.getName(),
updateUser.getContactId());

UserAdditionalInfo userAdditionalInfo = UserAdditionalInfoLocalServiceUtil
.getUserAdditionalInfo(Long.parseLong(userId));

List<Phone> phoneList = PhoneLocalServiceUtil.getPhones(
companyId, Contact.class.getName(),
updateUser.getContactId());

List<ListType> phoneTypes = ListTypeServiceUtil
.getListTypes(Contact.class.getName()
+ ListTypeConstants.PHONE);
int officePhoneTypeId = 0;
int mobilePhoneTypeId = 0;
int homePhoneTypeId = 0;
int faxTypeId = 0;
for (ListType phoneType : phoneTypes) {
String phoneTypeName = phoneType.getName();
if (UserConstants.OFFICE_PHONE_TYPE.equals(phoneTypeName)) {
officePhoneTypeId = phoneType.getListTypeId();
}
if (UserConstants.MOBILE_PHONE_TYPE.equals(phoneTypeName)) {
mobilePhoneTypeId = phoneType.getListTypeId();
}
if (UserConstants.HOME_PHONE_TYPE.equals(phoneTypeName)) {
homePhoneTypeId = phoneType.getListTypeId();
}
if (UserConstants.PERSONAL_FAX_TYPE.equals(phoneTypeName)) {
faxTypeId = phoneType.getListTypeId();
}
}
String officeNumber = StringPool.BLANK;
String mobileNumber = StringPool.BLANK;
String homeNumber = StringPool.BLANK;
String faxNumber = StringPool.BLANK;
for (Phone phone : phoneList) {
if ((updateUser.getUserId() == phone.getUserId())
&& (officePhoneTypeId == phone.getTypeId())) {

officeNumber = phone.getNumber();
}
if ((updateUser.getUserId() == phone.getUserId())
&& (mobilePhoneTypeId == phone.getTypeId())) {
mobileNumber = phone.getNumber();
}
if ((updateUser.getUserId() == phone.getUserId())
&& (homePhoneTypeId == phone.getTypeId())) {
homeNumber = phone.getNumber();
}
if ((updateUser.getUserId() == phone.getUserId())
&& (faxTypeId == phone.getTypeId())) {
faxNumber = phone.getNumber();
}
}

if (!updateAddress.isEmpty() && updateAddress.size() != 0) {
Contact updateContact = ContactLocalServiceUtil
.getContact(updateUser.getContactId());
UserRegistrationDTO userRegistration = requestedUserData(
companyId, userAdditionalInfo.getRoleId(),
updateUser.getEmailAddress(),
updateUser.getFirstName(),
updateUser.getMiddleName(),
updateUser.getLastName(), updateAddress.get(0)
.getStreet1(), updateAddress.get(0)
.getStreet2(), updateAddress.get(0)
.getStreet3(), updateAddress.get(0)
.getCity(), userAdditionalInfo.getState(),
updateAddress.get(0).getZip(), updateAddress.get(0)
.getCountryId(), officeNumber,
mobileNumber, homeNumber, faxNumber,
userAdditionalInfo.getLinkedIn(),
updateContact.getFacebookSn(),
updateContact.getTwitterSn(),
userAdditionalInfo.getAnnualIncome(),
userAdditionalInfo.getCurrencyCode(),
userAdditionalInfo.getDomainExpertise(),
userAdditionalInfo.getExperience(),
userAdditionalInfo.getQualification(),
userAdditionalInfo.isSubscribeNewsAlerts());
actionRequest.setAttribute(UserConstants.USER_REGISTRATION,
userRegistration);
}

Add or Update address in liferay 6.1.20 GA2 Programmatically

Add an Address:

public static boolean addAddress(long userId, long contactId,
String street1, String street2, String street3, String city,
String zip, long countryId, String className) {
boolean isAddressAdded = false;

List<ListType> addressTypes = Collections.EMPTY_LIST;
try {
addressTypes = ListTypeServiceUtil.getListTypes(Contact.class
.getName() + ListTypeConstants.ADDRESS);

int personalAddressTypeId = 0;
// find personal phone type
for (ListType addressType : addressTypes) {
String addressTypeName = addressType.getName();
System.out.println(":::::addressTypeName:::" + addressTypeName);
if (UserConstants.PERSONAL_ADDRESS_TYPE.equals(addressTypeName)) {
personalAddressTypeId = addressType.getListTypeId();
}
}
System.out.println("::::street1:::" + street1);
if (Validator.isNotNull(street1)) {
System.out.println(":::" + street1 + ";;;" + street2 + ":::"
+ street3 + ":::" + city + ":::" + zip + ":::"
+ countryId + ":::" + personalAddressTypeId);
AddressLocalServiceUtil.addAddress(userId, className,
contactId, street1, street2, street3, city, zip, 0,
countryId, personalAddressTypeId, false, true);

System.out.println("::DATA Inserted in address::::");
isAddressAdded = true;
} else {
deleteUser(userId);
}
} catch (PortalException e) {
e.printStackTrace();
deleteUser(userId);
} catch (SystemException e) {
e.printStackTrace();
deleteUser(userId);
}
return isAddressAdded;
}

public static User updateUserDetails(long updateUserId, String oldPassword,
String newPassword1, String newPassword2, String screenName,
String emailAddress, String firstName, String middleName,
String lastName, String facebookSn, String twitterSn,
long[] groupIds, long[] organizationIds, long[] roleIds,
List<UserGroupRole> userGroupRoles, long[] userGroupIds,
boolean isUserAdd, ServiceContext serviceContext) {
User user = null;
try {
System.out.println("::emailAddress::::::::-----------"
+ emailAddress);
user = UserLocalServiceUtil.updateUser(updateUserId, oldPassword,
newPassword1, newPassword2, false, StringPool.BLANK,
StringPool.BLANK, screenName, emailAddress, 0,
StringPool.BLANK, StringPool.BLANK, StringPool.BLANK,
StringPool.BLANK, StringPool.BLANK, firstName, middleName,
lastName, 0, 0, true, Calendar.JANUARY, 1, 1979,
StringPool.BLANK, StringPool.BLANK, facebookSn,
StringPool.BLANK, StringPool.BLANK, StringPool.BLANK,
StringPool.BLANK, StringPool.BLANK, twitterSn,
StringPool.BLANK, StringPool.BLANK, groupIds,
organizationIds, roleIds, userGroupRoles, userGroupIds,
serviceContext);
} catch (PortalException e) {
e.printStackTrace();
if (isUserAdd) {

deleteUser(updateUserId);
}
} catch (SystemException e) {
e.printStackTrace();
if (isUserAdd) {

deleteUser(updateUserId);
}
}
return user;
}


Update an address:

public static boolean updateAddress(long companyId, long contactId,
String street1, String street2, String street3, String city,
String zip, long countryId, String className) {
boolean isAddressUpdated = false;
List<Address> addressList = Collections.EMPTY_LIST;
try {
System.out.println("::updating address::::");
addressList = AddressLocalServiceUtil.getAddresses(companyId,
className, contactId);
for (Address address : addressList) {
address.setStreet1(street1);
address.setStreet2(street2);
address.setStreet3(street3);
address.setCity(city);
address.setZip(zip);
address.setCountryId(countryId);
AddressLocalServiceUtil.updateAddress(address);
System.out.println("addresss updated succefully!!");
}
isAddressUpdated = true;
} catch (SystemException e) {
e.printStackTrace();
}
return isAddressUpdated;


}

Add or Update Phone in liferay 6.1.20 GA2 Programmatically

Add phone in liferay:

If you want to add an address/phone for user the class name is,
className = Contact.class.getName();


If you want to add an address/phone for organization the class name is,
className = Organization.class.getName();


public static boolean addPhone(long userId, long contactId,
String officeNumber, String mobileNumber, String homeNumber,
String faxNumber, String className) {
System.out.println("::::inside addPhone:::::");
boolean isPhoneAdded = false;

try {
List<ListType> phoneTypes = ListTypeServiceUtil
.getListTypes(Contact.class.getName()
+ ListTypeConstants.PHONE);
int officePhoneTypeId = 0;
int mobilePhoneTypeId = 0;
int homePhoneTypeId = 0;
int faxTypeId = 0;
for (ListType phoneType : phoneTypes) {
System.out.println("::phoneType:::" + phoneType.getName());
String phoneTypeName = phoneType.getName();
// personal is home
if (UserConstants.HOME_PHONE_TYPE.equals(phoneTypeName)) {
homePhoneTypeId = phoneType.getListTypeId();
}
if (UserConstants.OFFICE_PHONE_TYPE.equals(phoneTypeName)) {
officePhoneTypeId = phoneType.getListTypeId();
}
if (UserConstants.MOBILE_PHONE_TYPE.equals(phoneTypeName)) {
mobilePhoneTypeId = phoneType.getListTypeId();
}
if (UserConstants.PERSONAL_FAX_TYPE.equals(phoneTypeName)) {
faxTypeId = phoneType.getListTypeId();
}
}
if (Validator.isNotNull(officeNumber)) {
PhoneLocalServiceUtil.addPhone(userId, className, contactId,
officeNumber, "", officePhoneTypeId, true);
}
if (Validator.isNotNull(mobileNumber)) {
PhoneLocalServiceUtil.addPhone(userId, className, contactId,
mobileNumber, "", mobilePhoneTypeId, true);
}
if (Validator.isNotNull(homeNumber)) {
PhoneLocalServiceUtil.addPhone(userId, className, contactId,
homeNumber, "", homePhoneTypeId, true);
}
if (Validator.isNotNull(faxNumber)) {
PhoneLocalServiceUtil.addPhone(userId, className, contactId,
faxNumber, "", faxTypeId, false);
}

System.out.println("::DATA Inserted in Phone::::");
isPhoneAdded = true;
} catch (PortalException e) {
e.printStackTrace();
deleteUser(userId);
} catch (SystemException e) {
e.printStackTrace();
deleteUser(userId);
}
return isPhoneAdded;
}

Update phone details:

public static boolean updatePhone(long companyId, long contactId,
String officeNumber, String mobileNumber, String homeNumber,
String faxNumber, String className) {
boolean isPhoneUpdated = false;
List<Phone> phoneList = Collections.EMPTY_LIST;
try {

phoneList = PhoneLocalServiceUtil.getPhones(companyId, className,
contactId);
for (Phone phone : phoneList) {
if (phone.getType().getName()
.equals(UserConstants.MOBILE_PHONE_TYPE)) {
System.out.println("::updating phone Number "
+ phone.getType().getName());
phone.setNumber(mobileNumber);
}
if (phone.getType().getName()
.equals(UserConstants.OFFICE_PHONE_TYPE)) {
System.out.println("::updating phone Number "
+ phone.getType().getName());
phone.setNumber(officeNumber);
}
if (phone.getType().getName()
.equals(UserConstants.HOME_PHONE_TYPE)) {
System.out.println("::updating phone Number "
+ phone.getType().getName());
phone.setNumber(homeNumber);
}
if (phone.getType().getName()
.equals(UserConstants.PERSONAL_FAX_TYPE)) {
System.out.println("::updating fax Number "
+ phone.getType().getName());
phone.setNumber(faxNumber);
}
PhoneLocalServiceUtil.updatePhone(phone);

}
System.out.println("::phone & fax number updated succefully!!!");
isPhoneUpdated = true;
} catch (SystemException e) {
e.printStackTrace();
} catch (PortalException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return isPhoneUpdated;

}

Saturday, August 10, 2013

Add or Update an user in liferay 6.1.20

Add and Update an  User programmatically in liferay 6.1.20

If you want to add user in liferay. You just follow the below steps


  •  provide all mandatory fields like first name, screen name, email address

          long[] userGroupIds = {};
long[] roleIds = { ParamUtil.getLong(actionRequest, "roleId") };
long[] organizationIds = new long[] { ParamUtil.getLong(actionRequest,
"organizationId") };
long[] groupIds = {};
       
          ServiceContext serviceContext = ServiceContextFactory.getInstance(
User.class.getName(), actionRequest);

 public static User addUserDetails(long companyId, long roleId,
String password1, String password2, String screenName,
String emailAddress, String firstName, String middleName,
String lastName, long[] groupIds, long[] organizationIds,
long[] roleIds, long[] userGroupIds, String street1,
String street2, String street3, String city, String state,
String zip, long countryId, String officeNumber,
String mobileNumber, String homeNumber, String faxNumber,
String linkedInId, String facebookSn, String twitterSn,
long annualIncome, String currencyCode, String domainExpertise,
String experience, String qualification, boolean isSubScribe,
String aboutIway, String className, ServiceContext serviceContext)
throws PortalException, SystemException {

User user = null;
boolean flag = false;

user = UserLocalServiceUtil.addUser(0, companyId, false, password1,
password2, false, screenName, emailAddress, 0,
StringPool.BLANK, LocaleUtil.getDefault(), firstName,
middleName, lastName, 0, 0, true, Calendar.JANUARY, 1, 1979,
StringPool.BLANK, groupIds, organizationIds, roleIds,
userGroupIds, false, serviceContext);
if (Validator.isNotNull(user)) {
user = updateUserDetails(user.getUserId(), user.getPassword(),
StringPool.BLANK, StringPool.BLANK, screenName,
emailAddress, firstName, middleName, lastName, facebookSn,
twitterSn, groupIds, organizationIds, roleIds,
Collections.EMPTY_LIST, userGroupIds, true, serviceContext);
}
if (Validator.isNotNull(user)) {
flag = addPhone(user.getUserId(), user.getContactId(),
officeNumber, mobileNumber, homeNumber, faxNumber,
className);
}
if (flag) {
flag = addAddress(user.getUserId(), user.getContactId(), street1,
street2, street3, city, zip, countryId, className);
}

}


  • Once add the user and if you want to add user info in contact table then you need to follow the below snippet.

   public static User updateUserDetails(long updateUserId, String oldPassword,
String newPassword1, String newPassword2, String screenName,
String emailAddress, String firstName, String middleName,
String lastName, String facebookSn, String twitterSn,
long[] groupIds, long[] organizationIds, long[] roleIds,
List<UserGroupRole> userGroupRoles, long[] userGroupIds,
boolean isUserAdd, ServiceContext serviceContext) {
User user = null;
try {

user = UserLocalServiceUtil.updateUser(updateUserId, oldPassword,
newPassword1, newPassword2, false, StringPool.BLANK,
StringPool.BLANK, screenName, emailAddress, 0,
StringPool.BLANK, StringPool.BLANK, StringPool.BLANK,
StringPool.BLANK, StringPool.BLANK, firstName, middleName,
lastName, 0, 0, true, Calendar.JANUARY, 1, 1979,
StringPool.BLANK, StringPool.BLANK, facebookSn,
StringPool.BLANK, StringPool.BLANK, StringPool.BLANK,
StringPool.BLANK, StringPool.BLANK, twitterSn,
StringPool.BLANK, StringPool.BLANK, groupIds,
organizationIds, roleIds, userGroupRoles, userGroupIds,
serviceContext);
} catch (PortalException e) {
e.printStackTrace();
if (isUserAdd) {

deleteUser(updateUserId);
}
} catch (SystemException e) {
e.printStackTrace();
if (isUserAdd) {

deleteUser(updateUserId);
}
}
return user;
}