Example usage for com.liferay.portal.kernel.security.membershippolicy UserGroupMembershipPolicyUtil isMembershipRequired

List of usage examples for com.liferay.portal.kernel.security.membershippolicy UserGroupMembershipPolicyUtil isMembershipRequired

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.security.membershippolicy UserGroupMembershipPolicyUtil isMembershipRequired.

Prototype

public static boolean isMembershipRequired(long userId, long userGroupId) throws PortalException 

Source Link

Usage

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

License:Open Source License

public long[] checkUserGroupIds(long userId, long[] userGroupIds) throws PortalException {

    long[] oldUserGroupIds = null;

    PermissionChecker permissionChecker = getPermissionChecker();

    if (userId != CompanyConstants.SYSTEM) {

        // Add back any user groups that the administrator does not have the
        // rights to remove or that have a mandatory membership

        List<UserGroup> oldUserGroups = UserGroupLocalServiceUtil.getUserUserGroups(userId);

        oldUserGroupIds = new long[oldUserGroups.size()];

        for (int i = 0; i < oldUserGroups.size(); i++) {
            UserGroup userGroup = oldUserGroups.get(i);

            if (!ArrayUtil.contains(userGroupIds, userGroup.getUserGroupId()) && (!UserGroupPermissionUtil
                    .contains(permissionChecker, userGroup.getUserGroupId(), ActionKeys.ASSIGN_MEMBERS)
                    || UserGroupMembershipPolicyUtil.isMembershipRequired(userId,
                            userGroup.getUserGroupId()))) {

                userGroupIds = ArrayUtil.append(userGroupIds, userGroup.getUserGroupId());
            }//  ww  w.j a  v  a2 s  . c o m

            oldUserGroupIds[i] = userGroup.getUserGroupId();
        }
    }

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

    for (long userGroupId : userGroupIds) {
        if ((oldUserGroupIds == null) || !ArrayUtil.contains(oldUserGroupIds, userGroupId)) {

            UserGroupPermissionUtil.check(permissionChecker, userGroupId, ActionKeys.ASSIGN_MEMBERS);
        }
    }

    return userGroupIds;
}