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

MyAccountPortletのパーミッション制限について

written-by

Peter Schwarcz

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

問題

  • MyAccountPortletへのアクセスは、様々なユーザーが自分のデータを修正できないように制限することを試みました。
  • com_liferay_my_account_web_portlet_MyAccountPortletの User および Owner ロールの権限を削除したにもかかわらず、Sign In ポートレット経由でデータを表示および編集できることが判明しました:

    • Sign In」ポートレットを使用すると、ユーザーは自分のアカウント設定ページにアクセスすることができます。 彼らが認証(ログイン)した後、通常テキストにはこう書かれています:

      あなたは テストとしてサインインしています。

    • また、リンクをクリックすると、一見権限がないように見えるにもかかわらず、アカウント設定に移動します。

  • このポートレットへのアクセスを制限するにはどうすればよいですか?

Environment

  • Liferay DXP 7.3

解決策

  • 観察された挙動はデザインによるものです。
  • 認証されたすべてのユーザーは、自分のデータを閲覧し設定することができます。 (自分たちのデータのみ! UserPermissionImplの条件(permissionChecker.getUserId() == userId) でこれを保証します。) この行動は、期待されていると考えられます。 参照元: https://github.com/liferay/liferay-portal/blob/master/portal-impl/src/com/liferay/portal/service/permission/UserPermissionImpl.java#L121
  • 個人メニューにアクセス」パーミッションの取り消しにより、ユーザーの個人メニューにページを表示させないようにしますが、誰もが自分のデータを閲覧・設定できる権利は残ります。 (もちろん、アカウント設定ページへのリンクを所有することが必要です)。
  • 結論から言うと、この動作は意図的なものであり、これを変更すると他の機能が壊れてしまう。 サインインウィジェットでアカウント設定ページが表示されないようにするために、以下の回避策を提案することができます:
    • サインインウィジェットをページから削除する。 アカウント設定ページは、レンダリングするためにURLにポートレット認証トークン(p_p_auth)が存在する必要があるため、作り物のURLでアクセスすることはできません。 ポータルが生成したURLの場合、認証トークンは自動的にURLに追加されます。
    • サインインウィジェットをフラグメントモジュールでカスタマイズして、リンクを削除する。 デザイン上の理由やその他の理由で、サインインウィジェットがページの一部でなければならない場合は、アカウント設定ページへのリンクを停止するようにカスタマイズする必要があります。 参照元: https://github.com/liferay/liferay-portal/blob/master/modules/apps/login/login-web/src/main/resources/META-INF/resources/login.jsp#L28
did-this-article-resolve-your-issue

legacy-knowledge-base