Example usage for com.liferay.portal.kernel.service.permission OrganizationPermissionUtil check

List of usage examples for com.liferay.portal.kernel.service.permission OrganizationPermissionUtil check

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.service.permission OrganizationPermissionUtil check.

Prototype

public static void check(PermissionChecker permissionChecker, Organization organization, String actionId)
            throws PortalException 

Source Link

Usage

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

License:Open Source License

public long[] checkOrganizations(long userId, long[] organizationIds) throws PortalException {

    long[] oldOrganizationIds = null;

    PermissionChecker permissionChecker = getPermissionChecker();

    if (userId != CompanyConstants.SYSTEM) {

        // Add back any mandatory organizations or organizations that the
        // administrator does not have the rights to remove and check that
        // he has the permission to add a new organization

        List<Organization> oldOrganizations = OrganizationLocalServiceUtil.getUserOrganizations(userId);

        oldOrganizationIds = new long[oldOrganizations.size()];

        for (int i = 0; i < oldOrganizations.size(); i++) {
            Organization organization = oldOrganizations.get(i);

            if (!ArrayUtil.contains(organizationIds, organization.getOrganizationId())
                    && (!OrganizationPermissionUtil.contains(permissionChecker, organization,
                            ActionKeys.ASSIGN_MEMBERS)
                            || OrganizationMembershipPolicyUtil.isMembershipProtected(permissionChecker, userId,
                                    organization.getOrganizationId())
                            || OrganizationMembershipPolicyUtil.isMembershipRequired(userId,
                                    organization.getOrganizationId()))) {

                organizationIds = ArrayUtil.append(organizationIds, organization.getOrganizationId());
            }/*www . ja  va 2  s  .  c  o m*/

            oldOrganizationIds[i] = organization.getOrganizationId();
        }
    }

    // Check that the administrator has the permission to add a new
    // organization and that the organization membership is allowed

    for (long organizationId : organizationIds) {
        if ((oldOrganizationIds != null) && ArrayUtil.contains(oldOrganizationIds, organizationId)) {

            continue;
        }

        Organization organization = OrganizationLocalServiceUtil.getOrganization(organizationId);

        OrganizationPermissionUtil.check(permissionChecker, organization, ActionKeys.ASSIGN_MEMBERS);
    }

    return organizationIds;
}