001
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.TeamPermissionUtil;
026 import com.liferay.portal.service.permission.UserGroupPermissionUtil;
027 import com.liferay.portal.service.permission.UserPermissionUtil;
028
029 import java.util.ArrayList;
030 import java.util.List;
031
032
037 public class UserGroupServiceImpl extends UserGroupServiceBaseImpl {
038
039
049 @Override
050 public void addGroupUserGroups(long groupId, long[] userGroupIds)
051 throws PortalException, SystemException {
052
053 GroupPermissionUtil.check(
054 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
055
056 userGroupLocalService.addGroupUserGroups(groupId, userGroupIds);
057 }
058
059
069 @Override
070 public void addTeamUserGroups(long teamId, long[] userGroupIds)
071 throws PortalException, SystemException {
072
073 TeamPermissionUtil.check(
074 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
075
076 userGroupLocalService.addTeamUserGroups(teamId, userGroupIds);
077 }
078
079
094 @Override
095 public UserGroup addUserGroup(String name, String description)
096 throws PortalException, SystemException {
097
098 PortalPermissionUtil.check(
099 getPermissionChecker(), ActionKeys.ADD_USER_GROUP);
100
101 User user = getUser();
102
103 return userGroupLocalService.addUserGroup(
104 user.getUserId(), user.getCompanyId(), name, description);
105 }
106
107
116 @Override
117 public void deleteUserGroup(long userGroupId)
118 throws PortalException, SystemException {
119
120 UserGroupPermissionUtil.check(
121 getPermissionChecker(), userGroupId, ActionKeys.DELETE);
122
123 userGroupLocalService.deleteUserGroup(userGroupId);
124 }
125
126
136 @Override
137 public UserGroup getUserGroup(long userGroupId)
138 throws PortalException, SystemException {
139
140 UserGroupPermissionUtil.check(
141 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
142
143 return userGroupLocalService.getUserGroup(userGroupId);
144 }
145
146
155 @Override
156 public UserGroup getUserGroup(String name)
157 throws PortalException, SystemException {
158
159 User user = getUser();
160
161 UserGroup userGroup = userGroupLocalService.getUserGroup(
162 user.getCompanyId(), name);
163
164 long userGroupId = userGroup.getUserGroupId();
165
166 UserGroupPermissionUtil.check(
167 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
168
169 return userGroup;
170 }
171
172
181 @Override
182 public List<UserGroup> getUserUserGroups(long userId)
183 throws PortalException, SystemException {
184
185 UserPermissionUtil.check(
186 getPermissionChecker(), userId, ActionKeys.VIEW);
187
188 List<UserGroup> userGroups = userGroupLocalService.getUserUserGroups(
189 userId);
190
191 return filterUserGroups(userGroups);
192 }
193
194
203 @Override
204 public void unsetGroupUserGroups(long groupId, long[] userGroupIds)
205 throws PortalException, SystemException {
206
207 GroupPermissionUtil.check(
208 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
209
210 userGroupLocalService.unsetGroupUserGroups(groupId, userGroupIds);
211 }
212
213
222 @Override
223 public void unsetTeamUserGroups(long teamId, long[] userGroupIds)
224 throws PortalException, SystemException {
225
226 TeamPermissionUtil.check(
227 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
228
229 userGroupLocalService.unsetTeamUserGroups(teamId, userGroupIds);
230 }
231
232
244 @Override
245 public UserGroup updateUserGroup(
246 long userGroupId, String name, String description)
247 throws PortalException, SystemException {
248
249 UserGroupPermissionUtil.check(
250 getPermissionChecker(), userGroupId, ActionKeys.UPDATE);
251
252 User user = getUser();
253
254 return userGroupLocalService.updateUserGroup(
255 user.getCompanyId(), userGroupId, name, description);
256 }
257
258 protected List<UserGroup> filterUserGroups(List<UserGroup> userGroups)
259 throws PortalException {
260
261 List<UserGroup> filteredGroups = new ArrayList<UserGroup>();
262
263 for (UserGroup userGroup : userGroups) {
264 if (UserGroupPermissionUtil.contains(
265 getPermissionChecker(), userGroup.getUserGroupId(),
266 ActionKeys.VIEW)) {
267
268 filteredGroups.add(userGroup);
269 }
270 }
271
272 return filteredGroups;
273 }
274
275 }