001    /**
002     * Copyright (c) 2000-2013 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.NoSuchUserGroupGroupRoleException;
018    import com.liferay.portal.kernel.exception.PortalException;
019    import com.liferay.portal.kernel.exception.SystemException;
020    import com.liferay.portal.model.Role;
021    import com.liferay.portal.model.UserGroup;
022    import com.liferay.portal.model.UserGroupGroupRole;
023    import com.liferay.portal.security.permission.PermissionCacheUtil;
024    import com.liferay.portal.service.base.UserGroupGroupRoleLocalServiceBaseImpl;
025    import com.liferay.portal.service.persistence.UserGroupGroupRolePK;
026    
027    import java.util.List;
028    
029    /**
030     * @author Brett Swaim
031     */
032    public class UserGroupGroupRoleLocalServiceImpl
033            extends UserGroupGroupRoleLocalServiceBaseImpl {
034    
035            @Override
036            public void addUserGroupGroupRoles(
037                            long userGroupId, long groupId, long[] roleIds)
038                    throws SystemException {
039    
040                    for (long roleId : roleIds) {
041                            UserGroupGroupRolePK pk = new UserGroupGroupRolePK(
042                                    userGroupId, groupId, roleId);
043    
044                            UserGroupGroupRole userGroupGroupRole =
045                                    userGroupGroupRolePersistence.fetchByPrimaryKey(pk);
046    
047                            if (userGroupGroupRole == null) {
048                                    userGroupGroupRole = userGroupGroupRolePersistence.create(pk);
049    
050                                    userGroupGroupRolePersistence.update(userGroupGroupRole);
051                            }
052                    }
053    
054                    PermissionCacheUtil.clearCache();
055            }
056    
057            @Override
058            public void addUserGroupGroupRoles(
059                            long[] userGroupIds, long groupId, long roleId)
060                    throws SystemException {
061    
062                    for (long userGroupId : userGroupIds) {
063                            UserGroupGroupRolePK pk = new UserGroupGroupRolePK(
064                                    userGroupId, groupId, roleId);
065    
066                            UserGroupGroupRole userGroupGroupRole =
067                                    userGroupGroupRolePersistence.fetchByPrimaryKey(pk);
068    
069                            if (userGroupGroupRole == null) {
070                                    userGroupGroupRole = userGroupGroupRolePersistence.create(pk);
071    
072                                    userGroupGroupRolePersistence.update(userGroupGroupRole);
073                            }
074                    }
075    
076                    PermissionCacheUtil.clearCache();
077            }
078    
079            @Override
080            public UserGroupGroupRole deleteUserGroupGroupRole(
081                            UserGroupGroupRole userGroupGroupRole)
082                    throws SystemException {
083    
084                    userGroupGroupRolePersistence.remove(userGroupGroupRole);
085    
086                    PermissionCacheUtil.clearCache();
087    
088                    return userGroupGroupRole;
089            }
090    
091            @Override
092            public void deleteUserGroupGroupRoles(
093                            long userGroupId, long groupId, long[] roleIds)
094                    throws SystemException {
095    
096                    for (long roleId : roleIds) {
097                            UserGroupGroupRolePK pk = new UserGroupGroupRolePK(
098                                    userGroupId, groupId, roleId);
099    
100                            try {
101                                    userGroupGroupRolePersistence.remove(pk);
102                            }
103                            catch (NoSuchUserGroupGroupRoleException nsuggre) {
104                            }
105                    }
106    
107                    PermissionCacheUtil.clearCache();
108            }
109    
110            @Override
111            public void deleteUserGroupGroupRoles(long userGroupId, long[] groupIds)
112                    throws SystemException {
113    
114                    for (long groupId : groupIds) {
115                            userGroupGroupRolePersistence.removeByU_G(userGroupId, groupId);
116                    }
117    
118                    PermissionCacheUtil.clearCache();
119            }
120    
121            @Override
122            public void deleteUserGroupGroupRoles(long[] userGroupIds, long groupId)
123                    throws SystemException {
124    
125                    for (long userGroupId : userGroupIds) {
126                            userGroupGroupRolePersistence.removeByU_G(userGroupId, groupId);
127                    }
128    
129                    PermissionCacheUtil.clearCache();
130            }
131    
132            @Override
133            public void deleteUserGroupGroupRoles(
134                            long[] userGroupIds, long groupId, long roleId)
135                    throws SystemException {
136    
137                    for (long userGroupId : userGroupIds) {
138                            UserGroupGroupRolePK pk = new UserGroupGroupRolePK(
139                                    userGroupId, groupId, roleId);
140    
141                            try {
142                                    userGroupGroupRolePersistence.remove(pk);
143                            }
144                            catch (NoSuchUserGroupGroupRoleException nsuggre) {
145                            }
146                    }
147    
148                    PermissionCacheUtil.clearCache();
149            }
150    
151            @Override
152            public void deleteUserGroupGroupRolesByGroupId(long groupId)
153                    throws SystemException {
154    
155                    userGroupGroupRolePersistence.removeByGroupId(groupId);
156    
157                    PermissionCacheUtil.clearCache();
158            }
159    
160            @Override
161            public void deleteUserGroupGroupRolesByRoleId(long roleId)
162                    throws SystemException {
163    
164                    userGroupGroupRolePersistence.removeByRoleId(roleId);
165    
166                    PermissionCacheUtil.clearCache();
167            }
168    
169            @Override
170            public void deleteUserGroupGroupRolesByUserGroupId(long userGroupId)
171                    throws SystemException {
172    
173                    userGroupGroupRolePersistence.removeByUserGroupId(userGroupId);
174    
175                    PermissionCacheUtil.clearCache();
176            }
177    
178            @Override
179            public List<UserGroupGroupRole> getUserGroupGroupRoles(long userGroupId)
180                    throws SystemException {
181    
182                    return userGroupGroupRolePersistence.findByUserGroupId(userGroupId);
183            }
184    
185            @Override
186            public List<UserGroupGroupRole> getUserGroupGroupRoles(
187                            long userGroupId, long groupId)
188                    throws SystemException {
189    
190                    return userGroupGroupRolePersistence.findByU_G(userGroupId, groupId);
191            }
192    
193            @Override
194            public List<UserGroupGroupRole> getUserGroupGroupRolesByGroupAndRole(
195                            long groupId, long roleId)
196                    throws SystemException {
197    
198                    return userGroupGroupRolePersistence.findByG_R(groupId, roleId);
199            }
200    
201            @Override
202            public List<UserGroupGroupRole> getUserGroupGroupRolesByUser(long userId)
203                    throws SystemException {
204    
205                    return userGroupRoleFinder.findByUserGroupsUsers(userId);
206            }
207    
208            @Override
209            public boolean hasUserGroupGroupRole(
210                            long userGroupId, long groupId, long roleId)
211                    throws SystemException {
212    
213                    UserGroupGroupRolePK pk = new UserGroupGroupRolePK(
214                            userGroupId, groupId, roleId);
215    
216                    UserGroupGroupRole userGroupGroupRole =
217                            userGroupGroupRolePersistence.fetchByPrimaryKey(pk);
218    
219                    if (userGroupGroupRole != null) {
220                            return true;
221                    }
222                    else {
223                            return false;
224                    }
225            }
226    
227            @Override
228            public boolean hasUserGroupGroupRole(
229                            long userGroupId, long groupId, String roleName)
230                    throws PortalException, SystemException {
231    
232                    UserGroup userGroup = userGroupPersistence.findByPrimaryKey(
233                            userGroupId);
234    
235                    long companyId = userGroup.getCompanyId();
236    
237                    Role role = rolePersistence.findByC_N(companyId, roleName);
238    
239                    long roleId = role.getRoleId();
240    
241                    return hasUserGroupGroupRole(userGroupId, groupId, roleId);
242            }
243    
244    }