Example usage for com.liferay.portal.security.ldap ContactConverterKeys SUFFIX

List of usage examples for com.liferay.portal.security.ldap ContactConverterKeys SUFFIX

Introduction

In this page you can find the example usage for com.liferay.portal.security.ldap ContactConverterKeys SUFFIX.

Prototype

String SUFFIX

To view the source code for com.liferay.portal.security.ldap ContactConverterKeys SUFFIX.

Click Source Link

Usage

From source file:com.custom.portal.security.ldap.CustomDefaultLDAPToPortalConverter.java

License:Open Source License

@Override
public CustomLDAPUser importLDAPUser(long companyId, Attributes attributes, Properties userMappings,
        Properties userExpandoMappings, Properties contactMappings, Properties contactExpandoMappings,
        String password) throws Exception {

    boolean autoScreenName = PrefsPropsUtil.getBoolean(companyId,
            PropsKeys.USERS_SCREEN_NAME_ALWAYS_AUTOGENERATE);

    String screenName = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.SCREEN_NAME)
            .toLowerCase();// w w w.  j  a  v  a 2s .  co  m
    String emailAddress = LDAPUtil.getAttributeString(attributes, userMappings,
            UserConverterKeys.EMAIL_ADDRESS);

    if (_log.isDebugEnabled()) {
        _log.debug("Screen name " + screenName + " and email address " + emailAddress);
    }

    String firstName = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.FIRST_NAME);
    String middleName = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.MIDDLE_NAME);
    String lastName = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.LAST_NAME);

    if (Validator.isNull(firstName) || Validator.isNull(lastName)) {
        String fullName = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.FULL_NAME);

        FullNameGenerator fullNameGenerator = FullNameGeneratorFactory.getInstance();

        String[] names = fullNameGenerator.splitFullName(fullName);

        firstName = names[0];
        middleName = names[1];
        lastName = names[2];
    }

    if (!autoScreenName && Validator.isNull(screenName)) {
        throw new UserScreenNameException("Screen name cannot be null for "
                + ContactConstants.getFullName(firstName, middleName, lastName));
    }

    if (Validator.isNull(emailAddress)
            && PrefsPropsUtil.getBoolean(companyId, PropsKeys.USERS_EMAIL_ADDRESS_REQUIRED)) {

        throw new UserEmailAddressException("Email address cannot be null for "
                + ContactConstants.getFullName(firstName, middleName, lastName));
    }

    CustomLDAPUser ldapUser = new CustomLDAPUser();

    ldapUser.setAutoPassword(password.equals(StringPool.BLANK));
    ldapUser.setAutoScreenName(autoScreenName);

    Contact contact = ContactUtil.create(0);

    int prefixId = getListTypeId(attributes, contactMappings, ContactConverterKeys.PREFIX,
            ListTypeConstants.CONTACT_PREFIX);

    contact.setPrefixId(prefixId);

    int suffixId = getListTypeId(attributes, contactMappings, ContactConverterKeys.SUFFIX,
            ListTypeConstants.CONTACT_SUFFIX);

    contact.setSuffixId(suffixId);

    String gender = LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.GENDER);

    gender = StringUtil.toLowerCase(gender);

    if (GetterUtil.getBoolean(gender) || gender.equals("female")) {
        contact.setMale(false);
    } else {
        contact.setMale(true);
    }

    try {
        Date birthday = DateUtil.parseDate(
                LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.BIRTHDAY),
                LocaleUtil.getDefault());

        contact.setBirthday(birthday);
    } catch (ParseException pe) {
        Calendar birthdayCalendar = CalendarFactoryUtil.getCalendar(1970, Calendar.JANUARY, 1);

        contact.setBirthday(birthdayCalendar.getTime());
    }

    contact.setSmsSn(LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.SMS_SN));
    contact.setAimSn(LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.AIM_SN));
    contact.setFacebookSn(
            LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.FACEBOOK_SN));
    contact.setIcqSn(LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.ICQ_SN));
    contact.setJabberSn(
            LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.JABBER_SN));
    contact.setMsnSn(LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.MSN_SN));
    contact.setMySpaceSn(
            LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.MYSPACE_SN));
    contact.setSkypeSn(LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.SKYPE_SN));
    contact.setTwitterSn(
            LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.TWITTER_SN));
    contact.setYmSn(LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.YM_SN));
    contact.setJobTitle(
            LDAPUtil.getAttributeString(attributes, contactMappings, ContactConverterKeys.JOB_TITLE));

    ldapUser.setContact(contact);

    Map<String, String[]> contactExpandoAttributes = getExpandoAttributes(attributes, contactExpandoMappings);

    ldapUser.setContactExpandoAttributes(contactExpandoAttributes);

    Phone phone = PhoneUtil.create(0);

    phone.setNumber(
            (LDAPUtil.getAttributeString(attributes, contactMappings, CustomContactConverterKeys.PHONE)));

    ldapUser.setPhone(phone);

    Address address = AddressUtil.create(0);

    address.setCity(
            (LDAPUtil.getAttributeString(attributes, contactMappings, CustomContactConverterKeys.CITY)));
    address.setZip((LDAPUtil.getAttributeString(attributes, contactMappings, CustomContactConverterKeys.ZIP)));
    address.setStreet1(
            (LDAPUtil.getAttributeString(attributes, contactMappings, CustomContactConverterKeys.STREET)));

    ldapUser.setAddress(address);

    ldapUser.setCreatorUserId(0);
    ldapUser.setGroupIds(null);
    ldapUser.setOrganizationIds(null);
    ldapUser.setPasswordReset(false);

    Object portrait = LDAPUtil.getAttributeObject(attributes,
            userMappings.getProperty(UserConverterKeys.PORTRAIT));

    if (portrait != null) {
        byte[] portraitBytes = (byte[]) portrait;

        if (portraitBytes.length > 0) {
            ldapUser.setPortraitBytes((byte[]) portrait);
        }

        ldapUser.setUpdatePortrait(true);
    }

    ldapUser.setRoleIds(null);
    ldapUser.setSendEmail(false);

    ServiceContext serviceContext = new ServiceContext();

    String uuid = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.UUID);

    serviceContext.setUuid(uuid);

    ldapUser.setServiceContext(serviceContext);

    ldapUser.setUpdatePassword(!password.equals(StringPool.BLANK));

    User user = UserUtil.create(0);

    user.setCompanyId(companyId);
    user.setEmailAddress(emailAddress);
    user.setFirstName(firstName);

    String jobTitle = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.JOB_TITLE);

    user.setJobTitle(jobTitle);

    Locale locale = LocaleUtil.getDefault();

    user.setLanguageId(locale.toString());

    user.setLastName(lastName);
    user.setMiddleName(middleName);
    user.setOpenId(StringPool.BLANK);
    user.setPasswordUnencrypted(password);
    user.setScreenName(screenName);

    String status = LDAPUtil.getAttributeString(attributes, userMappings, UserConverterKeys.STATUS);

    if (Validator.isNotNull(status)) {
        user.setStatus(GetterUtil.getInteger(status));
    }

    ldapUser.setUser(user);

    Map<String, String[]> userExpandoAttributes = getExpandoAttributes(attributes, userExpandoMappings);

    ldapUser.setUserExpandoAttributes(userExpandoAttributes);

    ldapUser.setUserGroupIds(null);
    ldapUser.setUserGroupRoles(null);

    return ldapUser;
}