legacy-knowledge-base
公開されました Jun. 30, 2025

通常のロールの[権限の定義]でダイナミックデータマッピングの権限が使用できなくなる

written-by

Sorin Pop

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

問題

  • 新しいレギュラーロールを作成した後、 にアクセスすることができなくなりました:
    Dynamic Data Mapping > Dynamic Data Mapping Structure
    または Dynamic Data Mapping > Dynamic Data Mapping Templateに行くことができなくなりました。
  • そのため、左メニューや検索に「Dynamic Data Mapping」のメニュー項目が存在しなくなり、「DYNAMIC DATA MAPPING STRUCTURE」「DYNAMIC DATA MAPPING TEMPLATE」のパーミッションに到達できない。
  • これらは6.2で利用可能でした。

Environment

  • 7.2+(おそらく7.0と7.1も同様だと思います)

解決策

  • これは、DDMからDDMTemplateとDDMStructureを削除した LPS-55497 、かなり前に導入された現在の制限です。
  • ウィジェットテンプレートの管理を刷新し、サイト管理者がサイト内で利用できるウィジェットを管理できる別のアプリケーションを作成する予定です。 つまり、これらの権限は将来的に不要になったり、変更されたりする可能性があります。 参照 https://issues.liferay.com/browse/LPS-83325
  • 一方、議論されたDDM権限を任意のロールに適用するためには、2つの可能な回避策があります。

    A) UIを通して
    1. 権限が必要なUI上のRoleを開く。
    2. ページのURLからroleIdを取得する。 (com_liferay_roles_admin_web_portlet_RolesAdminPortlet_roleId={roleId}) 。
    3. ユーザーロールを開きます。
    4. 権限の定義」で「Dynamic Data Mapping」を探します: ページへの追加" 権限を探し、"Dynamic Data Mapping" を右クリックし、新しいタブまたはウィンドウでリンクを開きます。
    5. URLのUserロールのidをカスタムロールのid(ステップ2で取得したもの)に変更します。 (この後、カスタムロールのDDMパーミッションが表示されるはずです)。
    6. カスタムロールに必要なDDM権限を割り当てる。
    この手順を紹介する画面録画を添付します。 (DDMPermissionWorkaround.mp4)

    B) スクリプトで
    1. データベース(会社テーブル)またはコントロールパネル > Virtual InstancesからインスタンスのIDを取得します。権限が必要なUIのRoleを開きます。
    2. データベース(role_テーブル)またはロールページのURL(com_liferay_roles_admin_web_portlet_RolesAdminPortlet_roleId={roleId})からロールIdを収集します。
    3. 添付のスクリプト(AddDDMPermissionsToRole.groovy)において、companyIdとroleIdの変数に上記で取得した値を記入する。
    4. コントロールパネル > サーバー管理 > スクリプトで実行します。
did-this-article-resolve-your-issue

legacy-knowledge-base