legacy-knowledge-base
公開されました Jul. 2, 2025

異なるページから選択されると、サイトロールが誤って割り当てられたり、失われたりする

written-by

Justin Choi

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

この記事では、選択可能な項目の任意のリストを持つ検索コンテナのバグを文書化しています。 サイト管理者は、サイトの役割が最初のページにリストされていない場合、サイトの役割を割り当てることができないことが判明しました。 2 番目のページに表示されていた役割は、より多くのサイトの役割がユーザーに割り当てられたときに、その後、選択が解除されました。 このバグはすべてのLiferayプラットフォームにあります。

このエラーの根本的な原因は、ページ分割を実装することでデータセット全体の一部にリクエストとプロセスがクエリを行うことでパフォーマンスが向上する一方で、クライアント側には欠点があるためです。 サイトロールと同じ例を使って、クライアント側では、後続の2ページ、3ページ、4ページの情報は、単にまだ利用できません。 このように、情報は要求され、ユーザーがそれらのページに移動したときにのみ表示されます。

残念ながら、現時点では、Liferay DXPのページネーションの実装方法を変更しない限り、簡単に修正することはできません。

再現するためのステップ。

  1. コントロールパネル → ユーザー → ロールに移動します。
  2. サイトロール タブをクリックします。
  3. 20個以上のロールを作成します。 (簡単のため、 サイトの役割1、2、3などの名前を付けてください) 既存のデフォルトのサイトロールに加えて、数は20エントリを超えている必要がありますので、2番目のページを作成します。
  4. 右矢印をクリックして次のページに進み、すべて表示されていることを確認します。

ここで、テスト テスト以外のメンバーにサイト ロールを割り当てます。

  1. サイトに移動します。 (テストのために、 Home Site Mockup というサイトを作成していますが、ここではすでに複数のダミーユーザーをサイトメンバーにしています)。
  2. コントロールパネル→会員→サイト会員に移動します。
  3. 任意のユーザー(例:Test Two)を選択し、 の3つのドットアイコン→サイトロールの割り当てをクリックします。
    searchcontainer01.png
  4. 1ページ目から1枚、2ページ目から3枚の計4枚の役を割り当てます。 例えば、 サイトロール4 と、 サイトロール6と、 サイトロール7と、 サイトロール8とがあります。
    searchcontainer02a.png

    図2. 1 ページのサイトロール 1 を選択します。

    searchcontainer02b.png

    図3. 2 ページのサイトロール 6、7、および 8 を選択します。

  5. 完了 ボタンをクリックします。
  6. この時点で、ユーザ のテスト2 には4つのロールが割り当てられています。
    searchcontainer03.png

この時点で予想されるのは、同じユーザーに複数のサイトロールが割り当てられている場合、すべてのサイトロールが右側の サイトロールとチーム の列に表示されるということです。 しかし、ここが最もバグが顕在化しているところです。 次のいくつかのステップがそれを示しています。

  1. テスト 2に 5 番目のサイト・ロールを割り当てます。 の3ドットアイコン→サイトロールの割り当てをクリックします。をクリック
  2. サイトロール5 の横にあるチェックボックスをクリックし、 完了 ボタンをクリックします。

下の画像をご覧ください。
searchcontainer04.png

割り当てられた他のサイト ロールは であり、 にはリストされておらず、サイト ロールの割り当てウィンドウを再度確認すると実際には選択解除されていることに注意してください。

決議

利用可能な回避策

上記のように、簡単に修正できるものはまだありません。 しかし、Liferay Engineeringはこのバグを非常に意識しており、近い将来にサービスパックまたはフィックスパックで利用可能になる恒久的な修正に取り組んでいます。 そうは言っても、短期的な解決策や回避策はいくつかあります。

回避策 #1
最初の回避策は、 サイト ロールの割り当て ウィンドウのページネーションを 20 から 30 エントリに変更することです。 2ページ目に掲載されていた3つのサイト(サイトロール6、7、8)が全て1ページになりました。 それらを再度選択し、 をクリックして完了 は5つのサイト・ロールをすべてユーザーに割り当てることに成功しました テスト2.
searchcontainer05.png

この回避策の一つの制限は、特定の時間に特定のウィンドウでのみ動作することです。 ウィンドウを閉じて再度開いた場合、値はデフォルトの1ページあたり20エントリに戻ります。 この変更をより恒久的なものにするには、 のportal-ext.propertiesに次のように入力します。 search.container.page.default.delta=50. これにより、表示されるエントリ数が50に増加します。 最大値は200です。

回避策 #2
これは構成の問題というよりもベストプラクティスの解決策です。 理想的には、それぞれの顧客の特定のビジネスニーズに応じて、どのように多くのサイトの役割が必要で、許可された権限が非常に細かくする必要があるかどうかを検討してください。 Liferay DXPやPortalでは1ページあたり200件まで表示できますが、実際には少ない方が良い場合もあります。

did-this-article-resolve-your-issue

legacy-knowledge-base