【问题标题】:Liferay search does not provide results for web-contentsLiferay 搜索不提供网络内容的结果
【发布时间】:2012-08-24 11:36:48
【问题描述】:

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

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

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

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

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

对此有什么想法吗?

谢谢。

【问题讨论】:

    标签: search permissions liferay


    【解决方案1】:

    从 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" });
        }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-05
        • 2020-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-29
        相关资源
        最近更新 更多