0

当社は Liferay ポータル 6.0.5 CE を使用しています。

liferay 内にはコミュニティがあり、コミュニティにはメンバーと Web コンテンツがほとんどありません。

デフォルトでは、すべてのメンバーが役割Community memberを持ち、これらの Web コンテンツを表示できます。しかし、ユーザーが liferay 検索で Web コンテンツを検索しようとしても、結果が得られません。

permissions表示もできるような Web コンテンツを設定する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

アドバイスありがとうございます。検索ポートレットのフックでこの問題を解決しました。検索には、DynamicQuery と PermissionChecker、および単純なメソッド String.contains() を使用しました。動作は少し遅くなりますが、少なくとも 1,000 以上の Web コンテンツでは動作します!

于 2012-09-05T06:00:40.240 に答える