構成UIを非表示にする
Liferayは、 構成インターフェイスがデプロイ された後、構成UIを自動的に生成します。 ただし、UIを非表示にしたい特定のユースケースがある場合があります。 たとえば、管理者に特定の構成へのアクセスを許可したくない場合や、特定の基準に基づいて構成を非表示にしたい場合です。 構成UIを非表示にするには、2つの異なるオプションがあります。
generateUI
アノテーションプロパティを使用する- 構成の可視性インターフェイスを使用する
generateUI
を使用する
すべての状況で構成UIを非表示にする場合は、ExtendedObjectClassDefinition
アノテーションプロパティgenerateUI
を構成インターフェイスに含めます。 プロパティをfalse
に設定します。 これにより、すべてのスコープの構成UIが非表示になることに注意してください。
@ExtendedObjectClassDefinition(generateUI=false)
構成の可視性インターフェイスを使用する
構成UIを選択的に非表示にする場合は、ConfigurationVisibilityController
インターフェイスを使用します。
実装例を参照する
新しいLiferay インスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.55-ga55。
http://localhost:8080でLiferayへのサインインします。 メールアドレス[email protected]_とパスワード_test_を使用してください。 プロンプトが表示されたら、パスワードを _learn_に変更します。
次に、以下の手順に従います。
構成UIを非表示にする をダウンロードして、解凍します。
curl https://resources.learn.liferay.com/dxp/latest/ja/building-applications/core-frameworks/configuration-framework/liferay-g8v3.zip -O
unzip liferay-g8v3.zip
モジュールのルートから、ビルドおよびデプロイします。
./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
noteこのコマンドは、デプロイされたjarをDockerコンテナの/opt/liferay/osgi/modulesにコピーするのと同じです。
Liferay Dockerコンテナコンソールでデプロイを確認します。
STARTED com.acme.g8v3.impl_1.0.0 [1650]
ブラウザで
https://localhost:8080
を開き、 [コントロールパネル] → [設定] → [システム設定] に移動します。 [プラットフォーム]で [サードパーティー] をクリックします。 左側の [G8V3 Able Configuration] をクリックします 。 [Enable G8V3 Baker Configuration]のチェックボックスをオンにします。 [Update] ボタンをクリックします。このチェックボックスが有効になっていない場合、G8V3 Baker構成は非表示になっていることに注意してください。
インターフェイスを実装する
アプリケーションの構成の可視性インターフェイスを作成します。
@Component(
property = "configuration.pid=com.acme.g8v3.internal.configuration.G8V3BakerConfiguration",
service = ConfigurationVisibilityController.class
)
public class G8V3BakerConfigurationVisibilityController
implements ConfigurationVisibilityController {
@Override
public boolean isVisible(
ExtendedObjectClassDefinition.Scope scope, Serializable scopePK) {
try {
G8V3AbleConfiguration g8v3AbleConfiguration =
_configurationProvider.getSystemConfiguration(
G8V3AbleConfiguration.class);
return g8v3AbleConfiguration.enableG8V3BakerConfiguration();
}
catch (ConfigurationException configurationException) {
_log.error(configurationException, configurationException);
return false;
}
}
private static final Log _log = LogFactoryUtil.getLog(
G8V3BakerConfigurationVisibilityController.class);
@Reference
private ConfigurationProvider _configurationProvider;
}
@Component
アノテーションを使用して構成インターフェイスを識別します。 Component
アノテーションのconfiguration.pid
は、構成インターフェイスの完全修飾クラス名と一致する必要があることに注意してください。
インターフェイスのisVisible()
メソッド用に独自のロジックを記述します。 サンプルプロジェクトでは、単純なロジックを使用して、G8V3 Able構成のブール値設定を確認します。 アプリケーションで、構成UIを表示または非表示にする独自のプログラミングロジックを設計します。