問題
- 私たちのチームは、ステージング マネージャーが管理者にならないことを望んでいるため、一部の権限のみを提供しています。 ただし、公開しようとすると、次のようなエラーが発生します。
ERROR [liferay/background_task-1][EventRemotePropagatorExportImportLifecycleListener:222] Unable to propagate staging lifecycle event to the remote live site
com.liferay.portal.kernel.security.auth.PrincipalException$MustHavePermission: User 35389 must have EXPORT_IMPORT_LAYOUTS permission for com.liferay.portal.kernel.model.Group 34689 - このユーザーの役割に追加する必要がある特定の権限を知ることは可能ですか?
Environment
- DXP 7.0
- DXP 7.1
- DXP 7.2
- DXP 7.3
解決策
- このタイプのエラーは ポートレット リソースとモデル リソースの 2 種類があります) で定義されているように、ユーザーが必要な権限を持っていないアクションを実行しようとしたときに発生します。 各リソースは、会社、グループ、グループ テンプレート、または個人の つのスコープに適用できます。
- アクションに必要なパーミッションをより正確に特定するために、モデル/ポートレット リソース アクション が定義されている Liferay ソース コードを調べることができます ( この portal.xml ファイルなど)。 警告には
com.liferay.portal.kernel.model.Group
が記載されているため、 50 行目 (EXPORT_IMPORT_LAYOUT
パーミッション (リスト内の 69 行目) を含む) から始まるセクションを確認できます。 portlet-ref セクションに基づいて、欠落しているパーミッションは Group Pages/Site Admin/Site Settings (つまり、一般的な「グループ」リソースのパーミッション (通常は「コントロール パネル」のプライマリ セクションにあります) に関するものであり、ページのエクスポートが含まれる) であると推測します。サイト)。 - したがって、上記の例の警告を解決するには、このユーザーの役割の一部として次の権限 を定義することにより、必要な権限を Live バンドルに追加できます
- コントロール パネル > サイト > サイト > リソース権限 > サイト > エクスポート/インポート ページ
追加情報
- 場合によっては、対応する .xml ファイル内の名前が、UI に表示されるアクセス許可の名前と 1x1 で一致しないことがあります (UI の参照の方がユーザー フレンドリである場合があるため)。 コード内のアクセス許可と、対応する UI 設定で表示される内容の例を次に示します。
- COMMUNITY=サイト
- LAYOUT=サイト/ページ (コンテキストによる)
- LAYOUT_SET=サイトページ
- BRANCH=バリエーション
- PORTLET(S)=アプリケーション
- SUBGROUPS=サブサイト
- 詳細については、次のヘルプ センターの記事も参照してください。
- リソースへのアクセス許可の追加
- リソースと権限の定義
- リソースと権限の関連付け
- ステージング をサポートするためのアクセス許可の更新 (カスタム アプリケーション内)