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