設定UIを非表示にする
Liferay は 設定インターフェイスが をデプロイした後、設定 UI を自動的に生成します。ただし、UIを非表示にしたい特定のユースケースがある場合があります。たとえば、管理者に特定の構成へのアクセスを許可したくない場合や、特定の基準に基づいて構成を非表示にしたい場合です。構成UIを非表示にするには、2つの異なるオプションがあります。
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.132-ga132
http://localhost:8080 で Liferay にサインインしてください。メールアドレス test@liferay.com とパスワード test を使用してください。プロンプトが表示されたら、パスワードを learn に変更してください。
それでは、以下の手順に従ってください。
-
ダウンロードして解凍します 設定UIを非表示にします
curl https://resources.learn.liferay.com/examples/liferay-g8v3.zip -Ounzip liferay-g8v3.zip -
モジュールのルートディレクトリから、ビルドとデプロイを実行します。
./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)注記このコマンドは、デプロイされたjarファイルをDockerコンテナの/opt/liferay/osgi/modulesにコピーするのと同じです。
-
Liferay Dockerコンテナコンソールでデプロイメントを確認してください。
STARTED com.acme.g8v3.impl_1.0.0 [1650] -
ブラウザで
https://localhost:8080を開き、 グローバル メニュー (
) → コントロール パネル → システム設定 に移動します。サードパーティ をクリックしてください。左側の G8V3 Able 設定 をクリックします。 「G8V3 Baker設定を有効にする」のチェックボックスをオンにしてください。更新 ボタンをクリックしてください。
-
このチェックボックスがオフになっている場合、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 Configurationのブール値設定を確認します。アプリケーション内で、設定UIを表示または非表示にするための独自のプログラミングロジックを設計してください。