問題
- Liferay DXP 7.1+にアップグレードすると、ゲストユーザーが一部のWebコンテンツを見ることができない。
- これは、1つのサイトの会員でないユーザーにも再現されます。 そのサイトに属するウェブコンテンツを見ることはできない。
環境
- Liferay 7.0または6.xからアップグレードしたLiferay DXP 7.1+。
解像度
- Liferayの古いバージョン(Portal 6.0、6.1、6.2、DXP 7.0)のデフォルト設定では、Webコンテンツ 閲覧許可チェック オプション not が選択されていて、デフォルトではどんなゲストユーザーでもすべてのWebコンテンツを閲覧できるようになっているのですが。
- Liferay 7.1から、デフォルトの動作が変更され、ウェブコンテンツの検索結果や他のLiferay機能(ドキュメントライブラリ、ブログ、wiki)との整合性を取るために、閲覧許可チェックオプションを選択するようになりましたが、デフォルトでは閲覧許可チェックが選択されていました。
- Liferay DXP 7.1+にアップグレード後、一部のWebコンテンツが表示されないユーザーがいる場合、以下の方法で問題を解決することができます:
- オプション1: 特定のウェブコンテンツや役割の権限を手動で変更し、必要に応じて閲覧権限を付与する。
- オプション 2: システム設定 > Web Experience > Web Content を開き、 Article view permissions check enabled オプションの選択を解除して、すべての Web コンテンツの記事の閲覧権限を開放する。
-
オプション3: com.liferay.journal.configuration.JournalServiceConfiguration.config osgi/configs フォルダに、以下の情報を含むファイルを作成します
articleViewPermissionsCheckEnabled="false"
- 注:
articleViewPermissionsCheckEnabled
設定は DXP 7.4 Update 26で削除されました。詳しくは LPS-153517をご覧ください。
- 注:
-
Option 4: 上記の解決策が実行不可能な場合、添付の groovy スクリプトを実行することができます: ModifyJournalArticlePermissionsgroovyScript.txt このスクリプトの目的は、ウェブコンテンツ記事を表示するように手動で設定されたポートレットを表示する権限を持つロールが、ウェブコンテンツ記事自体を表示する権限も持つように、すべてのウェブコンテンツ記事に表示権限を追加することにあります。 スクリプトを実行するには、右上のメインメニューを開いてください --> コントロールパネル --> SYSTEM --> サーバー管理 --> スクリプト
- このスクリプトには、77行目に設定可能な dryRun boolean変数が含まれています。 これは、デフォルトで true に設定されています。つまり、スクリプトは記事のパーミッションを一切変更せず、 dryRun が falseに設定されていた場合に行ったであろうことを報告するだけということです。 この変数は、77行目を以下のように変更することで、 偽 に設定することができます:
boolean dryRun = false
- このスクリプトには、77行目に設定可能な dryRun boolean変数が含まれています。 これは、デフォルトで true に設定されています。つまり、スクリプトは記事のパーミッションを一切変更せず、 dryRun が falseに設定されていた場合に行ったであろうことを報告するだけということです。 この変数は、77行目を以下のように変更することで、 偽 に設定することができます:
注意:スクリプトを実行する前に、まずデータベースのバックアップを取り、より低い環境でスクリプトをテストし、添付のスクリプトに記載されている指示に従ってください。
-
-
オプション 5: ウェブコンテンツ フォルダ の閲覧権限が無効なため、ゲストユーザーがウェブコンテンツを閲覧できない場合、 portal-ext.properties ファイルで以下のプロパティを "false" に設定すると、ゲストユーザーがウェブコンテンツを閲覧できます。:
#
# 下記をtrueに設定すると、特定の
# アイテムに対する閲覧権限をチェックする際に、
# 親カテゴリやフォルダの閲覧権限も自動的にチェックされます。
#
# 例えば、trueに設定すると、あるドキュメントにアクセスするためには、
# ユーザがそのドキュメントのフォルダとそのすべての
# 親フォルダに対して閲覧権限を持っている必要があります. Or, to have access to a comment, a user must have the view
# permission on the comments's category and all its parent categories.
#
# Env: LIFERAYPERMISSIONSPERIODVIEWPERIODDYNAMICPERIOD_INHERITANCE
#
permissions.view.dynamic.inheritance=true
-
オプション 5: ウェブコンテンツ フォルダ の閲覧権限が無効なため、ゲストユーザーがウェブコンテンツを閲覧できない場合、 portal-ext.properties ファイルで以下のプロパティを "false" に設定すると、ゲストユーザーがウェブコンテンツを閲覧できます。:
追加情報
- 公式ドキュメントです:
- ロールと権限に関するFAQ
- この動作は LPS-73847で変更されています。