001
014
015 package com.liferay.portal.service.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.model.User;
019 import com.liferay.portal.model.UserGroup;
020 import com.liferay.portal.security.membershippolicy.UserGroupMembershipPolicyUtil;
021 import com.liferay.portal.security.permission.ActionKeys;
022 import com.liferay.portal.service.ServiceContext;
023 import com.liferay.portal.service.base.UserGroupServiceBaseImpl;
024 import com.liferay.portal.service.permission.GroupPermissionUtil;
025 import com.liferay.portal.service.permission.PortalPermissionUtil;
026 import com.liferay.portal.service.permission.TeamPermissionUtil;
027 import com.liferay.portal.service.permission.UserGroupPermissionUtil;
028 import com.liferay.portal.service.permission.UserPermissionUtil;
029 import com.liferay.portlet.expando.model.ExpandoBridge;
030
031 import java.io.Serializable;
032
033 import java.util.ArrayList;
034 import java.util.List;
035 import java.util.Map;
036
037
043 public class UserGroupServiceImpl extends UserGroupServiceBaseImpl {
044
045
053 @Override
054 public void addGroupUserGroups(long groupId, long[] userGroupIds)
055 throws PortalException {
056
057 GroupPermissionUtil.check(
058 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
059
060 userGroupLocalService.addGroupUserGroups(groupId, userGroupIds);
061 }
062
063
071 @Override
072 public void addTeamUserGroups(long teamId, long[] userGroupIds)
073 throws PortalException {
074
075 TeamPermissionUtil.check(
076 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
077
078 userGroupLocalService.addTeamUserGroups(teamId, userGroupIds);
079 }
080
081
097 @Deprecated
098 @Override
099 public UserGroup addUserGroup(String name, String description)
100 throws PortalException {
101
102 return addUserGroup(name, description, null);
103 }
104
105
122 @Override
123 public UserGroup addUserGroup(
124 String name, String description, ServiceContext serviceContext)
125 throws PortalException {
126
127 PortalPermissionUtil.check(
128 getPermissionChecker(), ActionKeys.ADD_USER_GROUP);
129
130 User user = getUser();
131
132 UserGroup userGroup = userGroupLocalService.addUserGroup(
133 user.getUserId(), user.getCompanyId(), name, description,
134 serviceContext);
135
136 UserGroupMembershipPolicyUtil.verifyPolicy(userGroup);
137
138 return userGroup;
139 }
140
141
149 @Override
150 public void deleteUserGroup(long userGroupId) throws PortalException {
151 UserGroupPermissionUtil.check(
152 getPermissionChecker(), userGroupId, ActionKeys.DELETE);
153
154 userGroupLocalService.deleteUserGroup(userGroupId);
155 }
156
157
165 @Override
166 public UserGroup fetchUserGroup(long userGroupId) throws PortalException {
167 UserGroupPermissionUtil.check(
168 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
169
170 return userGroupLocalService.fetchUserGroup(userGroupId);
171 }
172
173
182 @Override
183 public UserGroup getUserGroup(long userGroupId) throws PortalException {
184 UserGroupPermissionUtil.check(
185 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
186
187 return userGroupLocalService.getUserGroup(userGroupId);
188 }
189
190
198 @Override
199 public UserGroup getUserGroup(String name) throws PortalException {
200 User user = getUser();
201
202 UserGroup userGroup = userGroupLocalService.getUserGroup(
203 user.getCompanyId(), name);
204
205 long userGroupId = userGroup.getUserGroupId();
206
207 UserGroupPermissionUtil.check(
208 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
209
210 return userGroup;
211 }
212
213 @Override
214 public List<UserGroup> getUserGroups(long companyId)
215 throws PortalException {
216
217 return filterUserGroups(userGroupLocalService.getUserGroups(companyId));
218 }
219
220
228 @Override
229 public List<UserGroup> getUserUserGroups(long userId)
230 throws PortalException {
231
232 UserPermissionUtil.check(
233 getPermissionChecker(), userId, ActionKeys.VIEW);
234
235 List<UserGroup> userGroups = userGroupLocalService.getUserUserGroups(
236 userId);
237
238 return filterUserGroups(userGroups);
239 }
240
241
249 @Override
250 public void unsetGroupUserGroups(long groupId, long[] userGroupIds)
251 throws PortalException {
252
253 GroupPermissionUtil.check(
254 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
255
256 userGroupLocalService.unsetGroupUserGroups(groupId, userGroupIds);
257 }
258
259
267 @Override
268 public void unsetTeamUserGroups(long teamId, long[] userGroupIds)
269 throws PortalException {
270
271 TeamPermissionUtil.check(
272 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
273
274 userGroupLocalService.unsetTeamUserGroups(teamId, userGroupIds);
275 }
276
277
290 @Deprecated
291 @Override
292 public UserGroup updateUserGroup(
293 long userGroupId, String name, String description)
294 throws PortalException {
295
296 UserGroup oldUserGroup = userGroupPersistence.findByPrimaryKey(
297 userGroupId);
298
299 ExpandoBridge oldExpandoBridge = oldUserGroup.getExpandoBridge();
300
301 Map<String, Serializable> oldExpandoAttributes =
302 oldExpandoBridge.getAttributes();
303
304 UserGroup userGroup = updateUserGroup(
305 userGroupId, name, description, null);
306
307 UserGroupMembershipPolicyUtil.verifyPolicy(
308 userGroup, oldUserGroup, oldExpandoAttributes);
309
310 return userGroup;
311 }
312
313
327 @Override
328 public UserGroup updateUserGroup(
329 long userGroupId, String name, String description,
330 ServiceContext serviceContext)
331 throws PortalException {
332
333 UserGroupPermissionUtil.check(
334 getPermissionChecker(), userGroupId, ActionKeys.UPDATE);
335
336 User user = getUser();
337
338 return userGroupLocalService.updateUserGroup(
339 user.getCompanyId(), userGroupId, name, description,
340 serviceContext);
341 }
342
343 protected List<UserGroup> filterUserGroups(List<UserGroup> userGroups)
344 throws PortalException {
345
346 List<UserGroup> filteredGroups = new ArrayList<>();
347
348 for (UserGroup userGroup : userGroups) {
349 if (UserGroupPermissionUtil.contains(
350 getPermissionChecker(), userGroup.getUserGroupId(),
351 ActionKeys.VIEW)) {
352
353 filteredGroups.add(userGroup);
354 }
355 }
356
357 return filteredGroups;
358 }
359
360 }