0

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

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

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

如果我设置permissions了也可以查看的网络内容Guest role,那么搜索会提供相关结果。

如果重要的话,在我们拥有 Liferay 5.x 并迁移到 6.0 之前,然后迁移到 6.0.5。

对此有什么想法吗?

谢谢。

4

2 回答 2

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" });
    }
于 2012-08-28T10:22:55.287 回答
0

感谢您的建议,但我通过 hook for search portlet 解决了这个问题。对于搜索,我使用了 DynamicQuery 和 PermissionChecker 以及简单的方法 String.contains()。它的工作速度有点慢,但它可以工作——至少对于 1k+ 的网络内容!

于 2012-09-05T06:00:40.240 回答