Example usage for com.liferay.portal.kernel.service OrganizationLocalServiceUtil addUserOrganizations

List of usage examples for com.liferay.portal.kernel.service OrganizationLocalServiceUtil addUserOrganizations

Introduction

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

Prototype

public static void addUserOrganizations(long userId, long[] organizationIds) 

Source Link

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 {/*from   w  ww . j av a 2s. 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));
        }
    }

}