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

管理者以外のユーザーに対して商品メニューを非表示にする方法は?

written-by

Alfonso Crisci

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

問題

  • Liferay DXP 7.0および7.1では、特定のロール(例えば、通常/非管理者、サイトユーザー)に対して、製品メニュー(およびそれを開くためのアイコン)を非表示にする必要があることがあります:

DXP_Product_Menu.pngの場合

環境

  • Liferay 7.0 DXP
  • Liferay 7.1 DXP

解像度

  • Liferay DXPは、この要件をすぐに実現する方法を提供しません。
  • カスタマイズで目的の動作を実現することは可能です。 この要件に対するアプローチには、大きく分けて2つの方法があり、どちらもつながっています。

1. カスタムテーマ

カスタムテーマの portal_normal.ftl で、 <@liferay.control_menu /> タグを、以下のようなパーミッションチェックで囲みます:

<#if is_signed_in>
<#assign roles = user.getRoles()
showcontrolmenu = false
/>
<#list roles as role>
<#if role.getName() == "Administrator" || role.getName() == "Other Role" >
<#assign showcontrolmenu = true />
<#break>
</#if>
</#list>
<#if showcontrolmenu>
<@liferay.control_menu />
</#if>
</#if>

この代わりに、必要なコードをテーマの init.ftlで構築することもできます:

permission_checker = themeDisplay.getPermissionChecker() 
is_group_admin = permission_checker.isGroupAdmin(group_id)
is_omniadmin = permission_checker.isOmniadmin()
show_dockbar = is_group_admin || is_omniadmin

して使用します:

<#if show_dockbar> 
<@liferay_ui["quick-access"] contentId="#main-content" />
<@liferay_util["include"] page=body_top_include />
<@liferay.control_menu />
</#if>

を、 portal_normal.ftl. また、製品メニューのマージンは、変更後に調整が必要になる場合があります。 main.cssの中に、以下のようなものがあります:

@media only screen and (min-width:768px){
body.open #wrapper{
padding-left:0px;
}
}

は、視覚的なギャップを解消するのに役立つと思います。

2. コントロールメニューエントリー / テーマコントリビューター / テンプレートコンテキストコントリビューター

この方法については、関連するチュートリアルの一覧を紹介します:

上記に加え、いくつかの地域資源を紹介します:

注意:どちらの場合も、(少なくとも)「サインアウト」(/c/portal/logout)オプションが必要です:

DXP_Product_Menu_Sign_Out.png(英語のみ

をポータルのテーマで別の場所に移動する必要があります。そうしないと、製品メニューが無効になっているため、アクセスできなくなります。

追加情報

  • 製品メニューは最新のリリースで通常のユーザーロールから切り離されたため、Liferay DXP 7.2+ではこの問題は発生しなくなります。
  • 提供されるリソースは、カスタム開発のための純粋なヒントであり、実装は各開発者の裁量に任されます。
did-this-article-resolve-your-issue

legacy-knowledge-base