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.security.permission.ActionKeys;
28 import com.liferay.portlet.messageboards.model.MBCategory;
29 import com.liferay.portlet.messageboards.service.base.MBCategoryServiceBaseImpl;
30 import com.liferay.portlet.messageboards.service.permission.MBCategoryPermission;
31
32 import java.util.Iterator;
33 import java.util.List;
34
35
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 begin, int end)
91 throws PortalException, SystemException {
92
93 List<MBCategory> categories = mbCategoryLocalService.getCategories(
94 groupId, parentCategoryId, begin, end);
95
96 Iterator<MBCategory> itr = categories.iterator();
97
98 while (itr.hasNext()) {
99 MBCategory category = itr.next();
100
101 if (!MBCategoryPermission.contains(
102 getPermissionChecker(), category, ActionKeys.VIEW)) {
103
104 itr.remove();
105 }
106 }
107
108 return categories;
109 }
110
111 public int getCategoriesCount(long groupId, long parentCategoryId)
112 throws SystemException {
113
114 return mbCategoryLocalService.getCategoriesCount(
115 groupId, parentCategoryId);
116 }
117
118 public void subscribeCategory(long categoryId)
119 throws PortalException, SystemException {
120
121 MBCategoryPermission.check(
122 getPermissionChecker(), categoryId, ActionKeys.SUBSCRIBE);
123
124 mbCategoryLocalService.subscribeCategory(getUserId(), categoryId);
125 }
126
127 public void unsubscribeCategory(long categoryId)
128 throws PortalException, SystemException {
129
130 MBCategoryPermission.check(
131 getPermissionChecker(), categoryId, ActionKeys.SUBSCRIBE);
132
133 mbCategoryLocalService.unsubscribeCategory(getUserId(), categoryId);
134 }
135
136 public MBCategory updateCategory(
137 long categoryId, long parentCategoryId, String name,
138 String description, boolean mergeWithParentCategory)
139 throws PortalException, SystemException {
140
141 MBCategoryPermission.check(
142 getPermissionChecker(), categoryId, ActionKeys.UPDATE);
143
144 return mbCategoryLocalService.updateCategory(
145 categoryId, parentCategoryId, name, description,
146 mergeWithParentCategory);
147 }
148
149 }