001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.model.User;
020    import com.liferay.portal.model.UserGroup;
021    import com.liferay.portal.security.permission.ActionKeys;
022    import com.liferay.portal.service.base.UserGroupServiceBaseImpl;
023    import com.liferay.portal.service.permission.GroupPermissionUtil;
024    import com.liferay.portal.service.permission.PortalPermissionUtil;
025    import com.liferay.portal.service.permission.UserGroupPermissionUtil;
026    
027    import java.util.List;
028    
029    /**
030     * @author Charles May
031     */
032    public class UserGroupServiceImpl extends UserGroupServiceBaseImpl {
033    
034            public void addGroupUserGroups(long groupId, long[] userGroupIds)
035                    throws PortalException, SystemException {
036    
037                    GroupPermissionUtil.check(
038                            getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
039    
040                    userGroupLocalService.addGroupUserGroups(groupId, userGroupIds);
041            }
042    
043            public UserGroup addUserGroup(String name, String description)
044                    throws PortalException, SystemException {
045    
046                    PortalPermissionUtil.check(
047                            getPermissionChecker(), ActionKeys.ADD_USER_GROUP);
048    
049                    User user = getUser();
050    
051                    return userGroupLocalService.addUserGroup(
052                            user.getUserId(), user.getCompanyId(), name, description);
053            }
054    
055            public void deleteUserGroup(long userGroupId)
056                    throws PortalException, SystemException {
057    
058                    UserGroupPermissionUtil.check(
059                            getPermissionChecker(), userGroupId, ActionKeys.DELETE);
060    
061                    userGroupLocalService.deleteUserGroup(userGroupId);
062            }
063    
064            public UserGroup getUserGroup(long userGroupId)
065                    throws PortalException, SystemException {
066    
067                    UserGroupPermissionUtil.check(
068                            getPermissionChecker(), userGroupId, ActionKeys.VIEW);
069    
070                    return userGroupLocalService.getUserGroup(userGroupId);
071            }
072    
073            public UserGroup getUserGroup(String name)
074                    throws PortalException, SystemException {
075    
076                    UserGroup userGroup = userGroupLocalService.getUserGroup(
077                            getUser().getCompanyId(), name);
078    
079                    long userGroupId = userGroup.getUserGroupId();
080    
081                    UserGroupPermissionUtil.check(
082                            getPermissionChecker(), userGroupId, ActionKeys.VIEW);
083    
084                    return userGroup;
085            }
086    
087            public List<UserGroup> getUserUserGroups(long userId)
088                    throws SystemException {
089    
090                    return userGroupLocalService.getUserUserGroups(userId);
091            }
092    
093            public void unsetGroupUserGroups(long groupId, long[] userGroupIds)
094                    throws PortalException, SystemException {
095    
096                    GroupPermissionUtil.check(
097                            getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
098    
099                    userGroupLocalService.unsetGroupUserGroups(groupId, userGroupIds);
100            }
101    
102            public UserGroup updateUserGroup(
103                            long userGroupId, String name, String description)
104                    throws PortalException, SystemException {
105    
106                    UserGroupPermissionUtil.check(
107                            getPermissionChecker(), userGroupId, ActionKeys.UPDATE);
108    
109                    return userGroupLocalService.updateUserGroup(
110                            getUser().getCompanyId(), userGroupId, name, description);
111            }
112    
113    }