Search in sources :

Example 1 with Contact

use of com.liferay.portal.model.Contact in project liferay-ide by liferay.

the class UserLocalServiceImpl method deleteUser.

/**
 * Deletes the user.
 *
 * @param  user the user
 * @return the deleted user
 * @throws PortalException if a portal exception occurred
 * @throws SystemException if a system exception occurred
 */
@Override
public User deleteUser(User user) throws PortalException, SystemException {
    if (!PropsValues.USERS_DELETE) {
        throw new RequiredUserException();
    }
    // Browser tracker
    browserTrackerLocalService.deleteUserBrowserTracker(user.getUserId());
    // Group
    Group group = null;
    if (!user.isDefaultUser()) {
        group = user.getGroup();
    }
    if (group != null) {
        groupLocalService.deleteGroup(group);
    }
    try {
        imageLocalService.deleteImage(user.getPortraitId());
    } catch (NoSuchImageException nsie) {
        if (_log.isWarnEnabled()) {
            _log.warn("Unable to delete image " + user.getPortraitId());
        }
    }
    // Password policy relation
    passwordPolicyRelLocalService.deletePasswordPolicyRel(User.class.getName(), user.getUserId());
    // Old passwords
    passwordTrackerLocalService.deletePasswordTrackers(user.getUserId());
    // Subscriptions
    subscriptionLocalService.deleteSubscriptions(user.getUserId());
    // External user ids
    userIdMapperLocalService.deleteUserIdMappers(user.getUserId());
    // Announcements
    announcementsDeliveryLocalService.deleteDeliveries(user.getUserId());
    // Asset
    assetEntryLocalService.deleteEntry(User.class.getName(), user.getUserId());
    // Blogs
    blogsStatsUserLocalService.deleteStatsUserByUserId(user.getUserId());
    // Document library
    dlFileRankLocalService.deleteFileRanksByUserId(user.getUserId());
    // Expando
    expandoRowLocalService.deleteRows(user.getUserId());
    // Message boards
    mbBanLocalService.deleteBansByBanUserId(user.getUserId());
    mbStatsUserLocalService.deleteStatsUsersByUserId(user.getUserId());
    mbThreadFlagLocalService.deleteThreadFlagsByUserId(user.getUserId());
    // Membership requests
    membershipRequestLocalService.deleteMembershipRequestsByUserId(user.getUserId());
    // Shopping cart
    shoppingCartLocalService.deleteUserCarts(user.getUserId());
    // Social
    socialActivityLocalService.deleteUserActivities(user.getUserId());
    socialRequestLocalService.deleteReceiverUserRequests(user.getUserId());
    socialRequestLocalService.deleteUserRequests(user.getUserId());
    // Mail
    mailService.deleteUser(user.getCompanyId(), user.getUserId());
    // Contact
    Contact contact = contactLocalService.fetchContact(user.getContactId());
    if (contact != null) {
        contactLocalService.deleteContact(contact);
    }
    // Group roles
    userGroupRoleLocalService.deleteUserGroupRolesByUserId(user.getUserId());
    // Resources
    resourceLocalService.deleteResource(user.getCompanyId(), User.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, user.getUserId());
    // User
    userPersistence.remove(user);
    // Permission cache
    PermissionCacheUtil.clearCache();
    // Workflow
    workflowInstanceLinkLocalService.deleteWorkflowInstanceLinks(user.getCompanyId(), 0, User.class.getName(), user.getUserId());
    return user;
}
Also used : Group(com.liferay.portal.model.Group) UserGroup(com.liferay.portal.model.UserGroup) User(com.liferay.portal.model.User) RequiredUserException(com.liferay.portal.RequiredUserException) NoSuchImageException(com.liferay.portal.NoSuchImageException) Contact(com.liferay.portal.model.Contact)

Example 2 with Contact

use of com.liferay.portal.model.Contact in project liferay-ide by liferay.

the class UserLocalServiceImpl method updateEmailAddress.

/**
 * Updates the user's email address or sends verification email.
 *
 * @param  userId the primary key of the user
 * @param  password the user's password
 * @param  emailAddress1 the user's new email address
 * @param  emailAddress2 the user's new email address confirmation
 * @param  serviceContext the service context to be applied. Must set the
 *         portal URL, main path, primary key of the layout, remote address,
 *         remote host, and agent for the user.
 * @return the user
 * @throws PortalException if a user with the primary key could not be found
 * @throws SystemException if a system exception occurred
 */
@Override
public User updateEmailAddress(long userId, String password, String emailAddress1, String emailAddress2, ServiceContext serviceContext) throws PortalException, SystemException {
    emailAddress1 = StringUtil.toLowerCase(emailAddress1.trim());
    emailAddress2 = StringUtil.toLowerCase(emailAddress2.trim());
    User user = userPersistence.findByPrimaryKey(userId);
    validateEmailAddress(user, emailAddress1, emailAddress2);
    Company company = companyPersistence.findByPrimaryKey(user.getCompanyId());
    if (!company.isStrangersVerify()) {
        setEmailAddress(user, password, user.getFirstName(), user.getMiddleName(), user.getLastName(), emailAddress1);
        userPersistence.update(user);
        Contact contact = user.getContact();
        contact.setEmailAddress(user.getEmailAddress());
        contactPersistence.update(contact);
    } else {
        sendEmailAddressVerification(user, emailAddress1, serviceContext);
    }
    return user;
}
Also used : Company(com.liferay.portal.model.Company) User(com.liferay.portal.model.User) Contact(com.liferay.portal.model.Contact)

Example 3 with Contact

use of com.liferay.portal.model.Contact in project liferay-ide by liferay.

the class UserLocalServiceImpl method updateUser.

/**
 * Updates the user.
 *
 * @param  userId the primary key of the user
 * @param  oldPassword the user's old password
 * @param  newPassword1 the user's new password (optionally
 *         <code>null</code>)
 * @param  newPassword2 the user's new password confirmation (optionally
 *         <code>null</code>)
 * @param  passwordReset whether the user should be asked to reset their
 *         password the next time they login
 * @param  reminderQueryQuestion the user's new password reset question
 * @param  reminderQueryAnswer the user's new password reset answer
 * @param  screenName the user's new screen name
 * @param  emailAddress the user's new email address
 * @param  facebookId the user's new Facebook ID
 * @param  openId the user's new OpenID
 * @param  languageId the user's new language ID
 * @param  timeZoneId the user's new time zone ID
 * @param  greeting the user's new greeting
 * @param  comments the user's new comments
 * @param  firstName the user's new first name
 * @param  middleName the user's new middle name
 * @param  lastName the user's new last name
 * @param  prefixId the user's new name prefix ID
 * @param  suffixId the user's new name suffix ID
 * @param  male whether user is male
 * @param  birthdayMonth the user's new birthday month (0-based, meaning 0
 *         for January)
 * @param  birthdayDay the user's new birthday day
 * @param  birthdayYear the user's birthday year
 * @param  smsSn the user's new SMS screen name
 * @param  aimSn the user's new AIM screen name
 * @param  facebookSn the user's new Facebook screen name
 * @param  icqSn the user's new ICQ screen name
 * @param  jabberSn the user's new Jabber screen name
 * @param  msnSn the user's new MSN screen name
 * @param  mySpaceSn the user's new MySpace screen name
 * @param  skypeSn the user's new Skype screen name
 * @param  twitterSn the user's new Twitter screen name
 * @param  ymSn the user's new Yahoo! Messenger screen name
 * @param  jobTitle the user's new job title
 * @param  groupIds the primary keys of the user's groups
 * @param  organizationIds the primary keys of the user's organizations
 * @param  roleIds the primary keys of the user's roles
 * @param  userGroupRoles the user user's group roles
 * @param  userGroupIds the primary keys of the user's user groups
 * @param  serviceContext the service context to be applied (optionally
 *         <code>null</code>). Can set the UUID (with the <code>uuid</code>
 *         attribute), asset category IDs, asset tag names, and expando
 *         bridge attributes for the user.
 * @return the user
 * @throws PortalException if a user with the primary key could not be found
 *         or if the new information was invalid
 * @throws SystemException if a system exception occurred
 */
@Override
@SuppressWarnings("deprecation")
public User updateUser(long userId, String oldPassword, String newPassword1, String newPassword2, boolean passwordReset, String reminderQueryQuestion, String reminderQueryAnswer, String screenName, String emailAddress, long facebookId, String openId, String languageId, String timeZoneId, String greeting, String comments, String firstName, String middleName, String lastName, int prefixId, int suffixId, boolean male, int birthdayMonth, int birthdayDay, int birthdayYear, String smsSn, String aimSn, String facebookSn, String icqSn, String jabberSn, String msnSn, String mySpaceSn, String skypeSn, String twitterSn, String ymSn, String jobTitle, long[] groupIds, long[] organizationIds, long[] roleIds, List<UserGroupRole> userGroupRoles, long[] userGroupIds, ServiceContext serviceContext) throws PortalException, SystemException {
    // User
    User user = userPersistence.findByPrimaryKey(userId);
    Company company = companyPersistence.findByPrimaryKey(user.getCompanyId());
    String password = oldPassword;
    screenName = getLogin(screenName);
    emailAddress = StringUtil.toLowerCase(emailAddress.trim());
    openId = openId.trim();
    String oldFullName = user.getFullName();
    aimSn = StringUtil.toLowerCase(aimSn.trim());
    facebookSn = StringUtil.toLowerCase(facebookSn.trim());
    icqSn = StringUtil.toLowerCase(icqSn.trim());
    jabberSn = StringUtil.toLowerCase(jabberSn.trim());
    msnSn = StringUtil.toLowerCase(msnSn.trim());
    mySpaceSn = StringUtil.toLowerCase(mySpaceSn.trim());
    skypeSn = StringUtil.toLowerCase(skypeSn.trim());
    twitterSn = StringUtil.toLowerCase(twitterSn.trim());
    ymSn = StringUtil.toLowerCase(ymSn.trim());
    Date now = new Date();
    EmailAddressGenerator emailAddressGenerator = EmailAddressGeneratorFactory.getInstance();
    if (emailAddressGenerator.isGenerated(emailAddress)) {
        emailAddress = StringPool.BLANK;
    }
    if (!PropsValues.USERS_EMAIL_ADDRESS_REQUIRED && Validator.isNull(emailAddress)) {
        emailAddress = emailAddressGenerator.generate(user.getCompanyId(), userId);
    }
    validate(userId, screenName, emailAddress, openId, firstName, middleName, lastName, smsSn);
    if (Validator.isNotNull(newPassword1) || Validator.isNotNull(newPassword2)) {
        user = updatePassword(userId, newPassword1, newPassword2, passwordReset);
        password = newPassword1;
        user.setDigest(StringPool.BLANK);
    }
    user.setModifiedDate(now);
    if (user.getContactId() <= 0) {
        user.setContactId(counterLocalService.increment());
    }
    user.setPasswordReset(passwordReset);
    if (Validator.isNotNull(reminderQueryQuestion) && Validator.isNotNull(reminderQueryAnswer)) {
        user.setReminderQueryQuestion(reminderQueryQuestion);
        user.setReminderQueryAnswer(reminderQueryAnswer);
    }
    if (!StringUtil.equalsIgnoreCase(user.getScreenName(), screenName)) {
        user.setScreenName(screenName);
        user.setDigest(StringPool.BLANK);
    }
    boolean sendEmailAddressVerification = false;
    if (!company.isStrangersVerify()) {
        setEmailAddress(user, password, firstName, middleName, lastName, emailAddress);
    } else {
        sendEmailAddressVerification = true;
    }
    if (serviceContext != null) {
        String uuid = serviceContext.getUuid();
        if (Validator.isNotNull(uuid)) {
            user.setUuid(uuid);
        }
    }
    user.setFacebookId(facebookId);
    Long ldapServerId = (Long) serviceContext.getAttribute("ldapServerId");
    if (ldapServerId != null) {
        user.setLdapServerId(ldapServerId);
    }
    user.setOpenId(openId);
    user.setLanguageId(languageId);
    user.setTimeZoneId(timeZoneId);
    user.setGreeting(greeting);
    user.setComments(comments);
    user.setFirstName(firstName);
    user.setMiddleName(middleName);
    user.setLastName(lastName);
    user.setJobTitle(jobTitle);
    user.setExpandoBridgeAttributes(serviceContext);
    userPersistence.update(user, serviceContext);
    // Contact
    Date birthday = getBirthday(birthdayMonth, birthdayDay, birthdayYear);
    long contactId = user.getContactId();
    Contact contact = contactPersistence.fetchByPrimaryKey(contactId);
    if (contact == null) {
        contact = contactPersistence.create(contactId);
        contact.setCompanyId(user.getCompanyId());
        contact.setUserName(StringPool.BLANK);
        contact.setCreateDate(now);
        contact.setClassName(User.class.getName());
        contact.setClassPK(user.getUserId());
        contact.setAccountId(company.getAccountId());
        contact.setParentContactId(ContactConstants.DEFAULT_PARENT_CONTACT_ID);
    }
    contact.setModifiedDate(now);
    contact.setEmailAddress(user.getEmailAddress());
    contact.setFirstName(firstName);
    contact.setMiddleName(middleName);
    contact.setLastName(lastName);
    contact.setPrefixId(prefixId);
    contact.setSuffixId(suffixId);
    contact.setMale(male);
    contact.setBirthday(birthday);
    contact.setSmsSn(smsSn);
    contact.setAimSn(aimSn);
    contact.setFacebookSn(facebookSn);
    contact.setIcqSn(icqSn);
    contact.setJabberSn(jabberSn);
    contact.setMsnSn(msnSn);
    contact.setMySpaceSn(mySpaceSn);
    contact.setSkypeSn(skypeSn);
    contact.setTwitterSn(twitterSn);
    contact.setYmSn(ymSn);
    contact.setJobTitle(jobTitle);
    contactPersistence.update(contact, serviceContext);
    // Group
    Group group = groupLocalService.getUserGroup(user.getCompanyId(), userId);
    group.setFriendlyURL(StringPool.SLASH + screenName);
    groupPersistence.update(group);
    // Groups and organizations
    // See LPS-33205. Cache the user's list of user group roles because
    // adding or removing groups may add or remove user group roles
    // depending on the site default user associations.
    List<UserGroupRole> previousUserGroupRoles = userGroupRolePersistence.findByUserId(userId);
    updateGroups(userId, groupIds, serviceContext, false);
    updateOrganizations(userId, organizationIds, false);
    if (roleIds != null) {
        roleIds = UsersAdminUtil.addRequiredRoles(user, roleIds);
        userPersistence.setRoles(userId, roleIds);
    }
    // User group roles
    updateUserGroupRoles(user, groupIds, organizationIds, userGroupRoles, previousUserGroupRoles);
    if (userGroupIds != null) {
        if (PropsValues.USER_GROUPS_COPY_LAYOUTS_TO_USER_PERSONAL_SITE) {
            userGroupLocalService.copyUserGroupLayouts(userGroupIds, userId);
        }
        userPersistence.setUserGroups(userId, userGroupIds);
    }
    // Announcements
    announcementsDeliveryLocalService.getUserDeliveries(user.getUserId());
    if (serviceContext != null) {
        updateAsset(userId, user, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames());
    }
    if (GetterUtil.getBoolean(PropsKeys.USERS_UPDATE_USER_NAME + MBMessage.class.getName()) && !oldFullName.equals(user.getFullName())) {
        mbMessageLocalService.updateUserName(userId, user.getFullName());
    }
    if ((serviceContext == null) || serviceContext.isIndexingEnabled()) {
        Indexer indexer = IndexerRegistryUtil.nullSafeGetIndexer(User.class);
        indexer.reindex(user);
    }
    if ((serviceContext != null) && sendEmailAddressVerification) {
        sendEmailAddressVerification(user, emailAddress, serviceContext);
    }
    // Permission cache
    PermissionCacheUtil.clearCache();
    return user;
}
Also used : UserGroupRole(com.liferay.portal.model.UserGroupRole) Group(com.liferay.portal.model.Group) UserGroup(com.liferay.portal.model.UserGroup) Company(com.liferay.portal.model.Company) User(com.liferay.portal.model.User) Date(java.util.Date) Contact(com.liferay.portal.model.Contact) EmailAddressGenerator(com.liferay.portal.security.auth.EmailAddressGenerator) Indexer(com.liferay.portal.kernel.search.Indexer) MBMessage(com.liferay.portlet.messageboards.model.MBMessage)

Example 4 with Contact

use of com.liferay.portal.model.Contact in project liferay-ide by liferay.

the class UserLocalServiceImpl method addUserWithWorkflow.

/**
 * Adds a user with workflow.
 *
 * <p>
 * This method handles the creation and bookkeeping of the user including
 * its resources, metadata, and internal data structures. It is not
 * necessary to make subsequent calls to any methods to setup default
 * groups, resources, etc.
 * </p>
 *
 * @param  creatorUserId the primary key of the creator
 * @param  companyId the primary key of the user's company
 * @param  autoPassword whether a password should be automatically generated
 *         for the user
 * @param  password1 the user's password
 * @param  password2 the user's password confirmation
 * @param  autoScreenName whether a screen name should be automatically
 *         generated for the user
 * @param  screenName the user's screen name
 * @param  emailAddress the user's email address
 * @param  facebookId the user's facebook ID
 * @param  openId the user's OpenID
 * @param  locale the user's locale
 * @param  firstName the user's first name
 * @param  middleName the user's middle name
 * @param  lastName the user's last name
 * @param  prefixId the user's name prefix ID
 * @param  suffixId the user's name suffix ID
 * @param  male whether the user is male
 * @param  birthdayMonth the user's birthday month (0-based, meaning 0 for
 *         January)
 * @param  birthdayDay the user's birthday day
 * @param  birthdayYear the user's birthday year
 * @param  jobTitle the user's job title
 * @param  groupIds the primary keys of the user's groups
 * @param  organizationIds the primary keys of the user's organizations
 * @param  roleIds the primary keys of the roles this user possesses
 * @param  userGroupIds the primary keys of the user's user groups
 * @param  sendEmail whether to send the user an email notification about
 *         their new account
 * @param  serviceContext the service context to be applied (optionally
 *         <code>null</code>). Can set the UUID (with the <code>uuid</code>
 *         attribute), asset category IDs, asset tag names, and expando
 *         bridge attributes for the user.
 * @return the new user
 * @throws PortalException if the user's information was invalid
 * @throws SystemException if a system exception occurred
 */
@Override
@SuppressWarnings("deprecation")
public User addUserWithWorkflow(long creatorUserId, long companyId, boolean autoPassword, String password1, String password2, boolean autoScreenName, String screenName, String emailAddress, long facebookId, String openId, Locale locale, String firstName, String middleName, String lastName, int prefixId, int suffixId, boolean male, int birthdayMonth, int birthdayDay, int birthdayYear, String jobTitle, long[] groupIds, long[] organizationIds, long[] roleIds, long[] userGroupIds, boolean sendEmail, ServiceContext serviceContext) throws PortalException, SystemException {
    // User
    Company company = companyPersistence.findByPrimaryKey(companyId);
    screenName = getLogin(screenName);
    openId = StringUtil.trim(openId);
    Date now = new Date();
    if (PrefsPropsUtil.getBoolean(companyId, PropsKeys.USERS_SCREEN_NAME_ALWAYS_AUTOGENERATE)) {
        autoScreenName = true;
    }
    // PLACEHOLDER 01
    long userId = counterLocalService.increment();
    EmailAddressGenerator emailAddressGenerator = EmailAddressGeneratorFactory.getInstance();
    if ((emailAddress == null) || emailAddressGenerator.isGenerated(emailAddress)) {
        emailAddress = StringPool.BLANK;
    } else {
        emailAddress = StringUtil.toLowerCase(emailAddress.trim());
    }
    if (!PrefsPropsUtil.getBoolean(companyId, PropsKeys.USERS_EMAIL_ADDRESS_REQUIRED) && Validator.isNull(emailAddress)) {
        emailAddress = emailAddressGenerator.generate(companyId, userId);
    }
    validate(companyId, userId, autoPassword, password1, password2, autoScreenName, screenName, emailAddress, openId, firstName, middleName, lastName, organizationIds);
    if (!autoPassword) {
        if (Validator.isNull(password1) || Validator.isNull(password2)) {
            throw new UserPasswordException(UserPasswordException.PASSWORD_INVALID);
        }
    }
    if (autoScreenName) {
        ScreenNameGenerator screenNameGenerator = ScreenNameGeneratorFactory.getInstance();
        try {
            screenName = screenNameGenerator.generate(companyId, userId, emailAddress);
        } catch (Exception e) {
            throw new SystemException(e);
        }
    }
    User defaultUser = getDefaultUser(companyId);
    FullNameGenerator fullNameGenerator = FullNameGeneratorFactory.getInstance();
    String fullName = fullNameGenerator.getFullName(firstName, middleName, lastName);
    String greeting = LanguageUtil.format(locale, "welcome-x", " " + fullName, false);
    User user = userPersistence.create(userId);
    if (serviceContext != null) {
        String uuid = serviceContext.getUuid();
        if (Validator.isNotNull(uuid)) {
            user.setUuid(uuid);
        }
    }
    user.setCompanyId(companyId);
    user.setCreateDate(now);
    user.setModifiedDate(now);
    user.setDefaultUser(false);
    user.setContactId(counterLocalService.increment());
    if (Validator.isNotNull(password1)) {
        user.setPassword(PasswordEncryptorUtil.encrypt(password1));
        user.setPasswordUnencrypted(password1);
    }
    user.setPasswordEncrypted(true);
    PasswordPolicy passwordPolicy = defaultUser.getPasswordPolicy();
    boolean passwordReset = false;
    if (passwordPolicy != null) {
        if (passwordPolicy.isChangeable() && passwordPolicy.isChangeRequired()) {
            passwordReset = true;
        }
        addPasswordPolicyUsers(passwordPolicy.getPasswordPolicyId(), new long[] { userId });
    }
    user.setPasswordReset(passwordReset);
    user.setDigest(StringPool.BLANK);
    user.setScreenName(screenName);
    user.setEmailAddress(emailAddress);
    user.setFacebookId(facebookId);
    Long ldapServerId = (Long) serviceContext.getAttribute("ldapServerId");
    if (ldapServerId != null) {
        user.setLdapServerId(ldapServerId);
    } else {
        user.setLdapServerId(-1);
    }
    user.setOpenId(openId);
    user.setLanguageId(LocaleUtil.toLanguageId(locale));
    user.setTimeZoneId(defaultUser.getTimeZoneId());
    user.setGreeting(greeting);
    user.setFirstName(firstName);
    user.setMiddleName(middleName);
    user.setLastName(lastName);
    user.setJobTitle(jobTitle);
    user.setStatus(WorkflowConstants.STATUS_DRAFT);
    user.setExpandoBridgeAttributes(serviceContext);
    userPersistence.update(user, serviceContext);
    // Contact
    String creatorUserName = StringPool.BLANK;
    if (creatorUserId <= 0) {
        creatorUserId = user.getUserId();
    // Don't grab the full name from the User object because it doesn't
    // have a corresponding Contact object yet
    // creatorUserName = user.getFullName();
    } else {
        User creatorUser = userPersistence.findByPrimaryKey(creatorUserId);
        creatorUserName = creatorUser.getFullName();
    }
    Date birthday = getBirthday(birthdayMonth, birthdayDay, birthdayYear);
    Contact contact = contactPersistence.create(user.getContactId());
    contact.setCompanyId(user.getCompanyId());
    contact.setUserId(creatorUserId);
    contact.setUserName(creatorUserName);
    contact.setCreateDate(now);
    contact.setModifiedDate(now);
    contact.setClassName(User.class.getName());
    contact.setClassPK(user.getUserId());
    contact.setAccountId(company.getAccountId());
    contact.setParentContactId(ContactConstants.DEFAULT_PARENT_CONTACT_ID);
    contact.setEmailAddress(user.getEmailAddress());
    contact.setFirstName(firstName);
    contact.setMiddleName(middleName);
    contact.setLastName(lastName);
    contact.setPrefixId(prefixId);
    contact.setSuffixId(suffixId);
    contact.setMale(male);
    contact.setBirthday(birthday);
    contact.setJobTitle(jobTitle);
    contactPersistence.update(contact, serviceContext);
    // Group
    groupLocalService.addGroup(user.getUserId(), GroupConstants.DEFAULT_PARENT_GROUP_ID, User.class.getName(), user.getUserId(), null, null, 0, StringPool.SLASH + screenName, false, true, null);
    if (groupIds != null) {
        List<Group> groups = new ArrayList<Group>();
        for (long groupId : groupIds) {
            Group group = groupLocalService.fetchGroup(groupId);
            if (group != null) {
                groups.add(group);
            } else {
                if (_log.isWarnEnabled()) {
                    _log.warn("Group " + groupId + " does not exist");
                }
            }
        }
        groupLocalService.addUserGroups(userId, groups);
    }
    addDefaultGroups(userId);
    // Organizations
    updateOrganizations(userId, organizationIds, false);
    if (roleIds != null) {
        roleIds = UsersAdminUtil.addRequiredRoles(user, roleIds);
        userPersistence.setRoles(userId, roleIds);
    }
    addDefaultRoles(userId);
    if (userGroupIds != null) {
        if (PropsValues.USER_GROUPS_COPY_LAYOUTS_TO_USER_PERSONAL_SITE) {
            for (long userGroupId : userGroupIds) {
                userGroupLocalService.copyUserGroupLayouts(userGroupId, new long[] { userId });
            }
        }
        userPersistence.setUserGroups(userId, userGroupIds);
    }
    addDefaultUserGroups(userId);
    // Resources
    resourceLocalService.addResources(companyId, 0, creatorUserId, User.class.getName(), user.getUserId(), false, false, false);
    if (serviceContext != null) {
        updateAsset(creatorUserId, user, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames());
    }
    if ((serviceContext == null) || serviceContext.isIndexingEnabled()) {
        reindex(user);
    }
    // Workflow
    long workflowUserId = creatorUserId;
    if (workflowUserId == userId) {
        workflowUserId = defaultUser.getUserId();
    }
    ServiceContext workflowServiceContext = serviceContext;
    if (workflowServiceContext == null) {
        workflowServiceContext = new ServiceContext();
    }
    workflowServiceContext.setAttribute("autoPassword", autoPassword);
    workflowServiceContext.setAttribute("passwordUnencrypted", password1);
    workflowServiceContext.setAttribute("sendEmail", sendEmail);
    WorkflowHandlerRegistryUtil.startWorkflowInstance(companyId, workflowUserId, User.class.getName(), userId, user, workflowServiceContext);
    if (serviceContext != null) {
        String passwordUnencrypted = (String) serviceContext.getAttribute("passwordUnencrypted");
        if (Validator.isNotNull(passwordUnencrypted)) {
            user.setPasswordUnencrypted(passwordUnencrypted);
        }
    }
    return user;
}
Also used : Group(com.liferay.portal.model.Group) UserGroup(com.liferay.portal.model.UserGroup) Company(com.liferay.portal.model.Company) User(com.liferay.portal.model.User) ScreenNameGenerator(com.liferay.portal.security.auth.ScreenNameGenerator) ServiceContext(com.liferay.portal.service.ServiceContext) ArrayList(java.util.ArrayList) Date(java.util.Date) ContactFirstNameException(com.liferay.portal.ContactFirstNameException) ModelListenerException(com.liferay.portal.ModelListenerException) NoSuchImageException(com.liferay.portal.NoSuchImageException) GroupFriendlyURLException(com.liferay.portal.GroupFriendlyURLException) DuplicateOpenIdException(com.liferay.portal.DuplicateOpenIdException) ImageSizeException(com.liferay.portlet.documentlibrary.ImageSizeException) PasswordExpiredException(com.liferay.portal.PasswordExpiredException) UserPasswordException(com.liferay.portal.UserPasswordException) NoSuchUserException(com.liferay.portal.NoSuchUserException) UserSmsException(com.liferay.portal.UserSmsException) NoSuchRoleException(com.liferay.portal.NoSuchRoleException) PortalException(com.liferay.portal.kernel.exception.PortalException) UserIdException(com.liferay.portal.UserIdException) UserPortraitTypeException(com.liferay.portal.UserPortraitTypeException) RequiredUserException(com.liferay.portal.RequiredUserException) ReservedUserScreenNameException(com.liferay.portal.ReservedUserScreenNameException) IOException(java.io.IOException) ContactBirthdayException(com.liferay.portal.ContactBirthdayException) UserReminderQueryException(com.liferay.portal.UserReminderQueryException) DuplicateUserScreenNameException(com.liferay.portal.DuplicateUserScreenNameException) UserEmailAddressException(com.liferay.portal.UserEmailAddressException) ContactFullNameException(com.liferay.portal.ContactFullNameException) EncryptorException(com.liferay.util.EncryptorException) CompanyMaxUsersException(com.liferay.portal.CompanyMaxUsersException) NoSuchTicketException(com.liferay.portal.NoSuchTicketException) UserScreenNameException(com.liferay.portal.UserScreenNameException) ContactLastNameException(com.liferay.portal.ContactLastNameException) ReservedUserEmailAddressException(com.liferay.portal.ReservedUserEmailAddressException) DuplicateUserEmailAddressException(com.liferay.portal.DuplicateUserEmailAddressException) NoSuchUserGroupException(com.liferay.portal.NoSuchUserGroupException) PrincipalException(com.liferay.portal.security.auth.PrincipalException) SystemException(com.liferay.portal.kernel.exception.SystemException) NoSuchOrganizationException(com.liferay.portal.NoSuchOrganizationException) UserLockoutException(com.liferay.portal.UserLockoutException) UserPortraitSizeException(com.liferay.portal.UserPortraitSizeException) Contact(com.liferay.portal.model.Contact) EmailAddressGenerator(com.liferay.portal.security.auth.EmailAddressGenerator) SystemException(com.liferay.portal.kernel.exception.SystemException) UserPasswordException(com.liferay.portal.UserPasswordException) FullNameGenerator(com.liferay.portal.security.auth.FullNameGenerator) PasswordPolicy(com.liferay.portal.model.PasswordPolicy)

Example 5 with Contact

use of com.liferay.portal.model.Contact in project liferay-ide by liferay.

the class UserLocalServiceImpl method verifyEmailAddress.

/**
 * Verifies the email address of the ticket.
 *
 * @param  ticketKey the ticket key
 * @throws PortalException if a ticket matching the ticket key could not be
 *         found, if the ticket has expired, if the ticket is an email
 *         address ticket, or if the email address is invalid
 * @throws SystemException if a system exception occurred
 */
@Override
public void verifyEmailAddress(String ticketKey) throws PortalException, SystemException {
    Ticket ticket = ticketLocalService.getTicket(ticketKey);
    if (ticket.isExpired() || (ticket.getType() != TicketConstants.TYPE_EMAIL_ADDRESS)) {
        throw new NoSuchTicketException("{ticketKey=" + ticketKey + "}");
    }
    User user = userPersistence.findByPrimaryKey(ticket.getClassPK());
    String emailAddress = ticket.getExtraInfo();
    emailAddress = StringUtil.toLowerCase(emailAddress).trim();
    if (!emailAddress.equals(user.getEmailAddress())) {
        if (userPersistence.fetchByC_EA(user.getCompanyId(), emailAddress) != null) {
            throw new DuplicateUserEmailAddressException("{userId=" + user.getUserId() + "}");
        }
        setEmailAddress(user, StringPool.BLANK, user.getFirstName(), user.getMiddleName(), user.getLastName(), emailAddress);
        Contact contact = user.getContact();
        contact.setEmailAddress(user.getEmailAddress());
        contactPersistence.update(contact);
    }
    user.setEmailAddressVerified(true);
    userPersistence.update(user);
    ticketLocalService.deleteTicket(ticket);
}
Also used : Ticket(com.liferay.portal.model.Ticket) NoSuchTicketException(com.liferay.portal.NoSuchTicketException) User(com.liferay.portal.model.User) DuplicateUserEmailAddressException(com.liferay.portal.DuplicateUserEmailAddressException) Contact(com.liferay.portal.model.Contact)

Aggregations

Contact (com.liferay.portal.model.Contact)8 User (com.liferay.portal.model.User)8 DuplicateUserEmailAddressException (com.liferay.portal.DuplicateUserEmailAddressException)3 NoSuchImageException (com.liferay.portal.NoSuchImageException)3 NoSuchTicketException (com.liferay.portal.NoSuchTicketException)3 RequiredUserException (com.liferay.portal.RequiredUserException)3 Company (com.liferay.portal.model.Company)3 Group (com.liferay.portal.model.Group)3 UserGroup (com.liferay.portal.model.UserGroup)3 Date (java.util.Date)3 CompanyMaxUsersException (com.liferay.portal.CompanyMaxUsersException)2 ContactBirthdayException (com.liferay.portal.ContactBirthdayException)2 ContactFirstNameException (com.liferay.portal.ContactFirstNameException)2 ContactFullNameException (com.liferay.portal.ContactFullNameException)2 ContactLastNameException (com.liferay.portal.ContactLastNameException)2 DuplicateOpenIdException (com.liferay.portal.DuplicateOpenIdException)2 DuplicateUserScreenNameException (com.liferay.portal.DuplicateUserScreenNameException)2 GroupFriendlyURLException (com.liferay.portal.GroupFriendlyURLException)2 ModelListenerException (com.liferay.portal.ModelListenerException)2 NoSuchOrganizationException (com.liferay.portal.NoSuchOrganizationException)2