Liferay搜索不提供网络内容的结果

时间:2012-08-24 11:36:49

标签: search permissions liferay

我们公司正在使用Liferay门户网站6.0.5 CE。

在liferay中,我们有一个社区,社区的成员很少,网络内容很少。

默认情况下,所有成员都有角色Community member,他们可以查看这些网络内容。但是,如果用户尝试通过liferay搜索搜索Web内容,则不会提供任何结果。

如果我为permissions设置了Guest role,{{1}}也可以查看,则搜索会提供相关结果。

如果重要的话,在我们有Liferay 5.x并且已经迁移到6.0&然后到6.0.5。

对此有何想法?

感谢。

2 个答案:

答案 0 :(得分:0)

从5.0迁移时,似乎尚未设置文章的访客查看权限(如果之前为访客用户设置了所有权限)。轻松修复将为您希望在相应社区中为访客显示的所有文章分配访客查看权限。以下代码中的这一行分配了查看权限

JournalArticleLocalServiceUtil.addArticleResources(groupId,
                article.getArticleId(), new String[] { "VIEW" },
                new String[] { "VIEW" });

它被称为资源,您将添加文章资源的权限。

 ThemeDisplay themeDisplay = (ThemeDisplay) request
            .getAttribute(WebKeys.THEME_DISPLAY);
    long groupId = themeDisplay.getLayout().getGroupId();
    List<JournalArticle> articles = JournalArticleLocalServiceUtil
            .getArticles(groupId);

    for (JournalArticle article : articles) {
        JournalArticleLocalServiceUtil.addArticleResources(groupId,
                article.getArticleId(), new String[] { "VIEW" },
                new String[] { "VIEW" });
    }

答案 1 :(得分:0)

感谢您的建议,但我通过hook for search portlet解决了这个问题。为了搜索,我使用了DynamicQuery和PermissionChecker以及简单的方法String.contains()。它运行有点慢,但它的工作原理 - 至少1k + web内容!