Configuration Framework
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

構成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.132-ga132

http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。

次に、以下の手順に従います。

  1. ダウンロードして解凍する 設定UIを非表示にする

    curl https://resources.learn.liferay.com/examples/liferay-g8v3.zip -O
    
    unzip liferay-g8v3.zip
    
  2. モジュールのルートから、ビルドおよびデプロイします。

    ./gradlew deploy -Ddeploy.docker.container.id=$(docker ps -lq)
    

    このコマンドは、デプロイされたjarをDockerコンテナの/opt/liferay/osgi/modulesにコピーするのと同じです。

  3. Liferay Dockerコンテナコンソールでデプロイを確認します。

    STARTED com.acme.g8v3.impl_1.0.0 [1650]
    
  4. ブラウザで https://localhost:8080 を開き、 コントロール パネル構成システム設定に移動します。 プラットフォームの下で、 サードパーティをクリックします。 左側の[G8V3 Able Configuration]をクリックします 。 [Enable G8V3 Baker Configuration]のチェックボックスをオンにします。 更新 ボタンをクリックします。

    チェックボックスをクリックすると、他の構成UIが表示されます

  5. このチェックボックスが有効になっていない場合、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を表示または非表示にする独自のプログラミングロジックを設計します。