001
014
015 package com.liferay.portlet.wiki.security.permission;
016
017 import com.liferay.portal.kernel.dao.orm.QueryUtil;
018 import com.liferay.portal.kernel.util.GetterUtil;
019 import com.liferay.portal.security.permission.BasePermissionPropagator;
020 import com.liferay.portlet.wiki.model.WikiNode;
021 import com.liferay.portlet.wiki.model.WikiPage;
022 import com.liferay.portlet.wiki.service.WikiPageLocalServiceUtil;
023
024 import java.util.List;
025
026 import javax.portlet.ActionRequest;
027
028
032 public class WikiPermissionPropagatorImpl extends BasePermissionPropagator {
033
034 public void propagateRolePermissions(
035 ActionRequest actionRequest, String className, String primKey,
036 long[] roleIds)
037 throws Exception {
038
039 if (!className.equals(WikiNode.class.getName())) {
040 return;
041 }
042
043 long nodeId = GetterUtil.getLong(primKey);
044
045 List<WikiPage> wikiPages = WikiPageLocalServiceUtil.getPages(
046 nodeId, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
047
048 for (WikiPage wikiPage : wikiPages) {
049 for (long roleId : roleIds) {
050 propagateRolePermissions(
051 actionRequest, roleId, WikiNode.class.getName(), nodeId,
052 WikiPage.class.getName(), wikiPage.getResourcePrimKey());
053 }
054 }
055 }
056
057 }