1
22
23 package com.liferay.portlet.messageboards.service.impl;
24
25 import com.liferay.portal.PortalException;
26 import com.liferay.portal.SystemException;
27 import com.liferay.portal.kernel.util.ListUtil;
28 import com.liferay.portal.security.permission.ActionKeys;
29 import com.liferay.portlet.messageboards.model.MBCategory;
30 import com.liferay.portlet.messageboards.service.base.MBCategoryServiceBaseImpl;
31 import com.liferay.portlet.messageboards.service.permission.MBCategoryPermission;
32
33 import java.util.Iterator;
34 import java.util.List;
35
36
41 public class MBCategoryServiceImpl extends MBCategoryServiceBaseImpl {
42
43 public MBCategory addCategory(
44 long plid, long parentCategoryId, String name, String description,
45 boolean addCommunityPermissions, boolean addGuestPermissions)
46 throws PortalException, SystemException {
47
48 MBCategoryPermission.check(
49 getPermissionChecker(), plid, parentCategoryId,
50 ActionKeys.ADD_CATEGORY);
51
52 return mbCategoryLocalService.addCategory(
53 getUserId(), plid, parentCategoryId, name, description,
54 addCommunityPermissions, addGuestPermissions);
55 }
56
57 public MBCategory addCategory(
58 long plid, long parentCategoryId, String name, String description,
59 String[] communityPermissions, String[] guestPermissions)
60 throws PortalException, SystemException {
61
62 MBCategoryPermission.check(
63 getPermissionChecker(), plid, parentCategoryId,
64 ActionKeys.ADD_CATEGORY);
65
66 return mbCategoryLocalService.addCategory(
67 getUserId(), plid, parentCategoryId, name, description,
68 communityPermissions, guestPermissions);
69 }
70
71 public void deleteCategory(long categoryId)
72 throws PortalException, SystemException {
73
74 MBCategoryPermission.check(
75 getPermissionChecker(), categoryId, ActionKeys.DELETE);
76
77 mbCategoryLocalService.deleteCategory(categoryId);
78 }
79
80 public MBCategory getCategory(long categoryId)
81 throws PortalException, SystemException {
82
83 MBCategoryPermission.check(
84 getPermissionChecker(), categoryId, ActionKeys.VIEW);
85
86 return mbCategoryLocalService.getCategory(categoryId);
87 }
88
89 public List<MBCategory> getCategories(
90 long groupId, long parentCategoryId, int start, int end)
91 throws PortalException, SystemException {
92
93 List<MBCategory> categories = mbCategoryLocalService.getCategories(
94 groupId, parentCategoryId, start, end);
95
96 categories = ListUtil.copy(categories);
97
98 Iterator<MBCategory> itr = categories.iterator();
99
100 while (itr.hasNext()) {
101 MBCategory category = itr.next();
102
103 if (!MBCategoryPermission.contains(
104 getPermissionChecker(), category, ActionKeys.VIEW)) {
105
106 itr.remove();
107 }
108 }
109
110 return categories;
111 }
112
113 public int getCategoriesCount(long groupId, long parentCategoryId)
114 throws SystemException {
115
116 return mbCategoryLocalService.getCategoriesCount(
117 groupId, parentCategoryId);
118 }
119
120 public void subscribeCategory(long categoryId)
121 throws PortalException, SystemException {
122
123 MBCategoryPermission.check(
124 getPermissionChecker(), categoryId, ActionKeys.SUBSCRIBE);
125
126 mbCategoryLocalService.subscribeCategory(getUserId(), categoryId);
127 }
128
129 public void unsubscribeCategory(long categoryId)
130 throws PortalException, SystemException {
131
132 MBCategoryPermission.check(
133 getPermissionChecker(), categoryId, ActionKeys.SUBSCRIBE);
134
135 mbCategoryLocalService.unsubscribeCategory(getUserId(), categoryId);
136 }
137
138 public MBCategory updateCategory(
139 long categoryId, long parentCategoryId, String name,
140 String description, boolean mergeWithParentCategory)
141 throws PortalException, SystemException {
142
143 MBCategoryPermission.check(
144 getPermissionChecker(), categoryId, ActionKeys.UPDATE);
145
146 return mbCategoryLocalService.updateCategory(
147 categoryId, parentCategoryId, name, description,
148 mergeWithParentCategory);
149 }
150
151 }