Liferay DDMStructure编辑的权限无法按预期工作

时间:2015-03-13 11:29:46

标签: java permissions liferay liferay-6

我正在为Liferay 6.2开发一个portlet,我正在使用DDMStructures。当然我需要检查权限。我注意到当我创建一个结构 - 在Documents and Media portlet中的文档类型时,我设置了它的初始状态的权限。 (例如:访客可以看到选择的文档类型)一切都很好,我的portlet知道这个权限并使用它。问题是,当我将此权限更改为guest虚拟机不可见时,此设置不会对我的portlet进行任何更改。它仍然使用初始权限值。

我正在尝试通过两种方法检查权限: 1.通过PermissionChecker

pCh.hasPermission(
                   structure.getGroupId(), DDMStructure.class.getName(), structure.getStructureId(),
                   ActionKeys.VIEW)
  1. 来自DDMStructureServiceUtil的getStructures方法
  2. DDMStructureServiceUtil.getStructures(themeDisplay.getScopeGroupId());
    与...相同

    DDMStructureServiceUtil.getStructures(themeDisplay.getScopeGroup().getPrimaryKey());

    我检查权限有问题,或者是错误? 谢谢。

    加入:

    我创建了一个包含简单代码的新portlet,以确定此问题是否不是由我原始portlet中的任何其他方法引起的。这是调用getStructures方法的代码。结果仍然相同。 (请参阅问题示例的评论)

    
    public class NewPortlet extends MVCPortlet {
    
        @Override
        public void doView(RenderRequest renderRequest,
                RenderResponse renderResponse) {
    
            List allwithViewPerms = new ArrayList();
    
            ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest
                    .getAttribute(WebKeys.THEME_DISPLAY);
    
            try {
                allwithViewPerms = DDMStructureServiceUtil.getStructures(themeDisplay.getScopeGroupId());
            } catch (SystemException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            for (DDMStructure ddmStructure : allwithViewPerms) {
                System.out.println(ddmStructure.getNameCurrentValue());
            }
            System.out.println(allwithViewPerms.size());
    
            try {
                super.doView(renderRequest, renderResponse);
            } catch (IOException | PortletException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    

    与scopeGroup的getPrimaryKey()相同。

0 个答案:

没有答案