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
054 @Override
055 public void addGroupUserGroups(long groupId, long[] userGroupIds)
056 throws PortalException {
057
058 GroupPermissionUtil.check(
059 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
060
061 userGroupLocalService.addGroupUserGroups(groupId, userGroupIds);
062 }
063
064
073 @Override
074 public void addTeamUserGroups(long teamId, long[] userGroupIds)
075 throws PortalException {
076
077 TeamPermissionUtil.check(
078 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
079
080 userGroupLocalService.addTeamUserGroups(teamId, userGroupIds);
081 }
082
083
099 @Deprecated
100 @Override
101 public UserGroup addUserGroup(String name, String description)
102 throws PortalException {
103
104 return addUserGroup(name, description, null);
105 }
106
107
124 @Override
125 public UserGroup addUserGroup(
126 String name, String description, ServiceContext serviceContext)
127 throws PortalException {
128
129 PortalPermissionUtil.check(
130 getPermissionChecker(), ActionKeys.ADD_USER_GROUP);
131
132 User user = getUser();
133
134 UserGroup userGroup = userGroupLocalService.addUserGroup(
135 user.getUserId(), user.getCompanyId(), name, description,
136 serviceContext);
137
138 UserGroupMembershipPolicyUtil.verifyPolicy(userGroup);
139
140 return userGroup;
141 }
142
143
151 @Override
152 public void deleteUserGroup(long userGroupId) throws PortalException {
153 UserGroupPermissionUtil.check(
154 getPermissionChecker(), userGroupId, ActionKeys.DELETE);
155
156 userGroupLocalService.deleteUserGroup(userGroupId);
157 }
158
159
168 @Override
169 public UserGroup getUserGroup(long userGroupId) throws PortalException {
170 UserGroupPermissionUtil.check(
171 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
172
173 return userGroupLocalService.getUserGroup(userGroupId);
174 }
175
176
184 @Override
185 public UserGroup getUserGroup(String name) throws PortalException {
186 User user = getUser();
187
188 UserGroup userGroup = userGroupLocalService.getUserGroup(
189 user.getCompanyId(), name);
190
191 long userGroupId = userGroup.getUserGroupId();
192
193 UserGroupPermissionUtil.check(
194 getPermissionChecker(), userGroupId, ActionKeys.VIEW);
195
196 return userGroup;
197 }
198
199
207 @Override
208 public List<UserGroup> getUserUserGroups(long userId)
209 throws PortalException {
210
211 UserPermissionUtil.check(
212 getPermissionChecker(), userId, ActionKeys.VIEW);
213
214 List<UserGroup> userGroups = userGroupLocalService.getUserUserGroups(
215 userId);
216
217 return filterUserGroups(userGroups);
218 }
219
220
228 @Override
229 public void unsetGroupUserGroups(long groupId, long[] userGroupIds)
230 throws PortalException {
231
232 GroupPermissionUtil.check(
233 getPermissionChecker(), groupId, ActionKeys.ASSIGN_MEMBERS);
234
235 userGroupLocalService.unsetGroupUserGroups(groupId, userGroupIds);
236 }
237
238
246 @Override
247 public void unsetTeamUserGroups(long teamId, long[] userGroupIds)
248 throws PortalException {
249
250 TeamPermissionUtil.check(
251 getPermissionChecker(), teamId, ActionKeys.ASSIGN_MEMBERS);
252
253 userGroupLocalService.unsetTeamUserGroups(teamId, userGroupIds);
254 }
255
256
269 @Deprecated
270 @Override
271 public UserGroup updateUserGroup(
272 long userGroupId, String name, String description)
273 throws PortalException {
274
275 UserGroup oldUserGroup = userGroupPersistence.findByPrimaryKey(
276 userGroupId);
277
278 ExpandoBridge oldExpandoBridge = oldUserGroup.getExpandoBridge();
279
280 Map<String, Serializable> oldExpandoAttributes =
281 oldExpandoBridge.getAttributes();
282
283 UserGroup userGroup = updateUserGroup(
284 userGroupId, name, description, null);
285
286 UserGroupMembershipPolicyUtil.verifyPolicy(
287 userGroup, oldUserGroup, oldExpandoAttributes);
288
289 return userGroup;
290 }
291
292
306 @Override
307 public UserGroup updateUserGroup(
308 long userGroupId, String name, String description,
309 ServiceContext serviceContext)
310 throws PortalException {
311
312 UserGroupPermissionUtil.check(
313 getPermissionChecker(), userGroupId, ActionKeys.UPDATE);
314
315 User user = getUser();
316
317 return userGroupLocalService.updateUserGroup(
318 user.getCompanyId(), userGroupId, name, description,
319 serviceContext);
320 }
321
322 protected List<UserGroup> filterUserGroups(List<UserGroup> userGroups)
323 throws PortalException {
324
325 List<UserGroup> filteredGroups = new ArrayList<UserGroup>();
326
327 for (UserGroup userGroup : userGroups) {
328 if (UserGroupPermissionUtil.contains(
329 getPermissionChecker(), userGroup.getUserGroupId(),
330 ActionKeys.VIEW)) {
331
332 filteredGroups.add(userGroup);
333 }
334 }
335
336 return filteredGroups;
337 }
338
339 }