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