Example usage for com.liferay.portal.kernel.security.permission ActionKeys ASSIGN_MEMBERS

List of usage examples for com.liferay.portal.kernel.security.permission ActionKeys ASSIGN_MEMBERS

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.security.permission ActionKeys ASSIGN_MEMBERS.

Prototype

String ASSIGN_MEMBERS

To view the source code for com.liferay.portal.kernel.security.permission ActionKeys ASSIGN_MEMBERS.

Click Source Link

Usage

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

License:Open Source License

@Override
public void deleteUserTeam(long userId, long teamId) throws PortalException {

    _log.info("Removing user with id " + userId + " from team with id " + teamId);

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

    this.checkPersonalPermission(AngularActionKeys.ASSIGN_USER_TO_TEAM);

    this.hasResourcePermission(teamId, ActionKeys.ASSIGN_MEMBERS);

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

    TeamLocalServiceUtil.deleteUserTeam(userId, teamId);

}

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

License:Open Source License

@Override
public void deleteUserGroupTeams(long userGroupId, long[] teamIds) throws PortalException {
    _log.info("Removing user group with id " + userGroupId + " from teams");

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

    this.checkPersonalPermission(AngularActionKeys.ASSIGN_USER_GROUP_TO_TEAM);

    if (teamIds != null) {
        for (long teamId : teamIds) {
            this.hasResourcePermission(teamId, ActionKeys.ASSIGN_MEMBERS);
        }// ww w  .j a  v  a2 s  .co m

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

        TeamLocalServiceUtil.deleteUserGroupTeams(userGroupId, teamIds);
    }
}

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

License:Open Source License

@Override
public void assignTeamUserGroup(long teamId, long userGroupId) throws PortalException {

    _log.info("Assigning team with id " + teamId + " to user group with id " + userGroupId);

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

    // Personal rights
    this.checkMultiplePersonalPermission(new String[] { AngularActionKeys.UPDATE_USER_GROUP,
            AngularActionKeys.ASSIGN_USER_GROUP_TO_TEAM, AngularActionKeys.UPDATE_TEAM });

    com.liferay.portal.kernel.model.Team team = TeamLocalServiceUtil.getTeam(teamId);
    this.crossCompanyCheck(team.getCompanyId());

    TeamPermissionUtil.check(getPermissionChecker(), teamId, ActionKeys.UPDATE);

    com.liferay.portal.kernel.model.UserGroup userGroup = UserGroupLocalServiceUtil.getUserGroup(userGroupId);
    this.crossCompanyCheck(userGroup.getCompanyId());

    this.hasResourcePermission(userGroupId, ActionKeys.ASSIGN_MEMBERS);

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

    UserGroupLocalServiceUtil.addTeamUserGroup(teamId, userGroupId);
}

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

License:Open Source License

@Override
public void assignTeamUserGroups(long teamId, long[] userGroupIds) throws PortalException {

    _log.info("Assigning team with id " + teamId + " to multiple teams " + userGroupIds);

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

    this.checkMultiplePersonalPermission(new String[] { AngularActionKeys.UPDATE_USER_GROUP,
            AngularActionKeys.ASSIGN_USER_GROUP_TO_TEAM, AngularActionKeys.UPDATE_TEAM });

    com.liferay.portal.kernel.model.Team team = TeamLocalServiceUtil.getTeam(teamId);
    this.crossCompanyCheck(team.getCompanyId());
    TeamPermissionUtil.check(getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);

    if (userGroupIds != null) {
        for (long userGroupId : userGroupIds) {

            // Cross company checks
            com.liferay.portal.kernel.model.UserGroup userGroup = UserGroupLocalServiceUtil
                    .getUserGroup(userGroupId);
            this.crossCompanyCheck(userGroup.getCompanyId());

            // Resource checks
            this.hasResourcePermission(userGroupId, ActionKeys.ASSIGN_MEMBERS);
        }//ww  w .  j  a  v a 2s  .c om

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

        UserGroupLocalServiceUtil.addTeamUserGroups(teamId, userGroupIds);
    }

}

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

License:Open Source License

@Override
public void assignUserUserGroup(long userId, long userGroupId) throws PortalException {

    _log.info("Assigning user with id " + userId + " to user group with id " + userGroupId);

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

    // Personal rights
    this.checkMultiplePersonalPermission(new String[] { AngularActionKeys.UPDATE_USER_GROUP,
            AngularActionKeys.ASSIGN_USER_TO_USER_GROUP, AngularActionKeys.UPDATE_USER });

    com.liferay.portal.kernel.model.User user = UserLocalServiceUtil.getUser(userId);
    this.crossCompanyCheck(user.getCompanyId());

    com.liferay.portal.kernel.model.UserGroup userGroup = UserGroupLocalServiceUtil.getUserGroup(userGroupId);
    this.crossCompanyCheck(userGroup.getCompanyId());

    this.hasResourcePermission(userGroupId, ActionKeys.ASSIGN_MEMBERS);

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

    UserGroupLocalServiceUtil.addUserUserGroup(userId, userGroupId);

}

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

License:Open Source License

@Override
public void assignUserUserGroups(long userId, long[] userGroupIds) throws PortalException {

    _log.info("Assigning user with id " + userId + " to multiple teams " + userGroupIds);

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

    this.checkMultiplePersonalPermission(new String[] { AngularActionKeys.UPDATE_USER_GROUP,
            AngularActionKeys.ASSIGN_USER_TO_USER_GROUP, AngularActionKeys.UPDATE_USER });

    com.liferay.portal.kernel.model.User user = UserLocalServiceUtil.getUser(userId);
    this.crossCompanyCheck(user.getCompanyId());

    if (userGroupIds != null) {
        for (long userGroupId : userGroupIds) {

            // Cross company checks
            com.liferay.portal.kernel.model.UserGroup userGroup = UserGroupLocalServiceUtil
                    .getUserGroup(userGroupId);
            this.crossCompanyCheck(userGroup.getCompanyId());

            // Resource checks
            this.hasResourcePermission(userGroupId, ActionKeys.ASSIGN_MEMBERS);
        }//from ww w.  ja va2  s.co  m

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

        UserGroupLocalServiceUtil.addUserUserGroups(userId, userGroupIds);
    }

}

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());
            }/*  w  w w.  ja  va2 s.c om*/

            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;
}

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

License:Open Source License

protected void checkDeleteUserPermission(long deleteUserId, long companyId, long userId,
        ServiceContext serviceContext) throws PortalException {

    Company company = CompanyLocalServiceUtil.getCompany(companyId);

    boolean anonymousUser = ParamUtil.getBoolean(serviceContext, "anonymousUser");

    long defaultUserId = userLocalService.getDefaultUserId(companyId);

    if (((deleteUserId != 0) && (deleteUserId != defaultUserId))
            || (!company.isStrangers() && !anonymousUser)) {

        PermissionChecker permissionChecker = getPermissionChecker();

        // Check if user has an according group added with assign members

        User creator = this.getUser(deleteUserId);

        long[] creatorUserGroupIds = creator.getGroupIds();
        boolean hasGroupRight = false;

        // Either group needs right ADD_USER
        if (creatorUserGroupIds != null && creatorUserGroupIds.length > 0) {
            int index = 0;
            while (!hasGroupRight && index < creatorUserGroupIds.length) {
                hasGroupRight = UserGroupPermissionUtil.contains(getPermissionChecker(),
                        creatorUserGroupIds[index++], ActionKeys.DELETE_USER);
            }//from w  ww.  ja  v a  2s.  c om
        }

        // or the user itself
        if (!hasGroupRight && !PortalPermissionUtil.contains(permissionChecker, ActionKeys.DELETE_USER)) {

            throw new PrincipalException.MustHavePermission(permissionChecker, Organization.class.getName(), 0,
                    ActionKeys.UPDATE_USER, ActionKeys.ASSIGN_MEMBERS);
        }

    }

}