Example usage for com.liferay.portal.kernel.service UserLocalServiceUtil updateOrganizations

List of usage examples for com.liferay.portal.kernel.service UserLocalServiceUtil updateOrganizations

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.service UserLocalServiceUtil updateOrganizations.

Prototype

public static void updateOrganizations(long userId, long[] newOrganizationIds, ServiceContext serviceContext)
        throws com.liferay.portal.kernel.exception.PortalException 

Source Link

Document

Sets the organizations that the user is in, removing and adding organizations as necessary.

Usage

From source file:eu.gerhards.liferay.services.angular.service.impl.AngularUserServiceImpl.java

License:Open Source License

@Override
public void updateUserOrganizations(long userId, long[] organizationIds) throws PortalException {

    _log.info("Updating user phones ... ");

    _log.debug("    ... security check ...");

    PortalPermissionUtil.check(getPermissionChecker(), AngularActionKeys.UPDATE_ORGANIZATION);

    _log.debug("    ... processing ... ");

    long creatorId = 0;

    try {//www .  j  a v a  2  s. co  m
        creatorId = this.getUserId();
    } catch (PrincipalException pe) {
        if (_log.isWarnEnabled()) {
            _log.warn("Unable to get current user ID", pe);
        }
    }

    User user = UserLocalServiceUtil.getUserById(userId);

    this.checkUpdateUserPermission(creatorId, userId, user.getCompanyId(), null, null, null, null, null);

    // Organization membership policy

    long[] oldOrganizationIds = user.getOrganizationIds();

    List<Long> addOrganizationIds = new ArrayList<>();
    List<Long> removeOrganizationIds = Collections.emptyList();

    if (organizationIds != null) {
        removeOrganizationIds = ListUtil.toList(oldOrganizationIds);

        organizationIds = angularOrganizationService.checkOrganizations(userId, organizationIds);

        for (long organizationId : organizationIds) {
            if (ArrayUtil.contains(oldOrganizationIds, organizationId)) {
                removeOrganizationIds.remove(organizationId);
            } else {
                addOrganizationIds.add(organizationId);
            }
        }

        OrganizationLocalServiceUtil.addUserOrganizations(user.getUserId(), organizationIds);

        UserLocalServiceUtil.updateOrganizations(user.getUserId(), organizationIds, null);

        if (!addOrganizationIds.isEmpty() || !removeOrganizationIds.isEmpty()) {

            OrganizationMembershipPolicyUtil.checkMembership(new long[] { userId },
                    ArrayUtil.toLongArray(addOrganizationIds), ArrayUtil.toLongArray(removeOrganizationIds));
        }
    }

}