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 public void addGroupUserGroups(long groupId, long[] userGroupIds)
050 throws PortalException, SystemException {
051
052 GroupPermissionUtil.check(
053 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
054
055 userGroupLocalService.addGroupUserGroups(groupId, userGroupIds);
056 }
057
058
068 public void addTeamUserGroups(long teamId, long[] userGroupIds)
069 throws PortalException, SystemException {
070
071 TeamPermissionUtil.check(
072 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
073
074 userGroupLocalService.addTeamUserGroups(teamId, userGroupIds);
075 }
076
077
092 public UserGroup addUserGroup(String name, String description)
093 throws PortalException, SystemException {
094
095 PortalPermissionUtil.check(
096 getPermissionChecker(), ActionKeys.ADD_USER_GROUP);
097
098 User user = getUser();
099
100 return userGroupLocalService.addUserGroup(
101 user.getUserId(), user.getCompanyId(), name, description);
102 }
103
104
113 public void deleteUserGroup(long userGroupId)
114 throws PortalException, SystemException {
115
116 UserGroupPermissionUtil.check(
117 getPermissionChecker(), userGroupId, ActionKeys.DELETE);
118
119 userGroupLocalService.deleteUserGroup(userGroupId);
120 }
121
122
132 public UserGroup getUserGroup(long userGroupId)
133 throws PortalException, SystemException {
134
135 UserGroupPermissionUtil.check(
136 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
137
138 return userGroupLocalService.getUserGroup(userGroupId);
139 }
140
141
150 public UserGroup getUserGroup(String name)
151 throws PortalException, SystemException {
152
153 User user = getUser();
154
155 UserGroup userGroup = userGroupLocalService.getUserGroup(
156 user.getCompanyId(), name);
157
158 long userGroupId = userGroup.getUserGroupId();
159
160 UserGroupPermissionUtil.check(
161 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
162
163 return userGroup;
164 }
165
166
173 public List<UserGroup> getUserUserGroups(long userId)
174 throws PortalException, SystemException {
175
176 UserPermissionUtil.check(
177 getPermissionChecker(), userId, ActionKeys.VIEW);
178
179 List<UserGroup> userGroups = userGroupLocalService.getUserUserGroups(
180 userId);
181
182 return filterUserGroups(userGroups);
183 }
184
185
194 public void unsetGroupUserGroups(long groupId, long[] userGroupIds)
195 throws PortalException, SystemException {
196
197 GroupPermissionUtil.check(
198 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
199
200 userGroupLocalService.unsetGroupUserGroups(groupId, userGroupIds);
201 }
202
203
212 public void unsetTeamUserGroups(long teamId, long[] userGroupIds)
213 throws PortalException, SystemException {
214
215 TeamPermissionUtil.check(
216 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
217
218 userGroupLocalService.unsetTeamUserGroups(teamId, userGroupIds);
219 }
220
221
233 public UserGroup updateUserGroup(
234 long userGroupId, String name, String description)
235 throws PortalException, SystemException {
236
237 UserGroupPermissionUtil.check(
238 getPermissionChecker(), userGroupId, ActionKeys.UPDATE);
239
240 User user = getUser();
241
242 return userGroupLocalService.updateUserGroup(
243 user.getCompanyId(), userGroupId, name, description);
244 }
245
246 protected List<UserGroup> filterUserGroups(List<UserGroup> userGroups)
247 throws PortalException {
248
249 List<UserGroup> filteredGroups = new ArrayList<UserGroup>();
250
251 for (UserGroup userGroup : userGroups) {
252 if (UserGroupPermissionUtil.contains(
253 getPermissionChecker(), userGroup.getUserGroupId(),
254 ActionKeys.VIEW)) {
255
256 filteredGroups.add(userGroup);
257 }
258 }
259
260 return filteredGroups;
261 }
262
263 }