UADフレームワークの追加
Liferayのユーザー関連データ(UAD)管理ツールでユーザーデータを管理・削除することができます。 本ツールは、Liferayの多くのアプリケーション(ブログ、ドキュメントとメディア、掲示板など)ですぐに利用できます。 このフレームワークは、お客様のカスタムアプリケーションに適用することも可能です。
この作業は、 サービスビルダーを使用することでより簡単に行うことができます。 サービスビルダーがアプリケーションのためにUADを有効にするために必要なコードを自動的に生成する方法については、以下の例を参照してください。
サンプルコードをダウンロードする
新しいLiferay DXPインスタンスを起動し、以下を実行します。
メールアドレス test@liferay.com とパスワード test を使用して、http://localhost:8080でLiferayにサインインしてください。 プロンプトが表示されたら、パスワードを learn に変更します。
次に、以下の手順を実行します。
-
UAD Framework をダウンロードして解凍します。
-
モジュールのルートから、ビルドおよびデプロイします。
Noteこのコマンドは、デプロイされたjarをDockerコンテナの/opt/liferay/osgi/modulesにコピーするのと同じです。
-
Liferay Dockerコンテナコンソールでデプロイを確認します。
-
ブラウザで
https://localhost:8080
を開きます。 -
H6D2ポートレットをページに追加します。 サンプルポートレットは、サンプルウィジェットの下にあります。
-
テスト用の新しいユーザーを作成します。
-
新規ユーザーとしてログインし、H6D2ポートレットにコンテンツを追加してください。
-
管理者としてログインし直し、 [コントロールパネル] → [ユーザー] → [ユーザーと組織] に移動してください。
-
新しいユーザーの アクション アイコン (
) → [個人データの削除] をクリックしてください。 [OK] をクリックして、ユーザーの無効化を確認します。
-
UAD管理ツールが表示されます。 H6D2ポートレットでは、新規ユーザーが追加したデータの表示、匿名化、削除を行うことができます。
サービスモデルの定義の変更
このチュートリアルでは、サービスビルダーを使用して作成したアプリケーションが動作していることを前提としています。 UADを有効にするには、まず、次のようにエンティティを変更します。
-
-service
フォルダにあるservice.xml
ファイルを開いてください。 -
UADを有効にする
entity
パラメータには2つあります。entity
属性Description uad-application-name
エンティティタイプが所属するアプリケーションの名前を指定します。 uad-package-path
生成されたUADクラスのパッケージパスを指定します。
-
以下のデータフィールドがまだ定義されていない場合は、追加してください。
UADフレームワークには、ユーザーデータを追跡し、匿名化する上記のフィールドが必要です。
-
次に、匿名化するデータフィールドを指定します。 これは、2つの属性を用いて行われます。
-
uad-anonymize-field-name=[fieldName]
属性は、UAD自動匿名化処理で匿名ユーザーの値で置換されるフィールドを表します。 例えば、uad-anonymize-field-name=fullName
と設定すると、そのフィールドの値が匿名ユーザーのフルネームに置換されます。 匿名ユーザーの詳細については、 匿名ユーザーの構成 を参照してください。 -
uad-nonanonymizable="true"
属性は、自動的に匿名化されないが管理者によるレビューが必要なデータを示します。
-
UADモジュールを生成する
-
-service
フォルダから移動して、-uad
フォルダを新規に作成します。 -
モジュール用の
bnd.bnd
ファイルを作成します。
必ず -dsannotations-options: inherit
アノテーションを含めてください。OSGiサービスコンポーネントクラスはクラス階層からOSGi declarative servicesアノテーションを継承します。
- モジュール用の
build.gradle
ファイルを作成します。
プロジェクトの -api
モジュールを含め、必要な依存関係を追加することを確認してください。
-
モジュールの
-service
フォルダに戻り、Service Builder を実行して UAD モジュールを生成してください。出力:
ポートレットを変更する
フォームからアプリケーション固有のデータフィールドを渡す場合、 service.xml
ファイルで追加したユーザー関連のデータフィールドも渡す必要があります。
H6D2 Portlet
には_h6d2EntryLocalService
と呼ばれるH6D2EntryLocalService
フィールドとaddH6D2Entry
と呼ばれるアクション処理メソッドがあります。 addH6D2Entry
メソッドは H6D2EntryLocalService
のaddH6D2Entry
メソッドを呼び、 ActionRequest
から受け取ったデータフィールドを渡しています。
ポートレットの view.jsp
には、ユーザーが ActionRequest
から H6D2 Portlet
に送信できるフォームが含まれています。
ActionRequest
を actionURL
と共に送信すると、ポートレットの addH6D2Entry
メソッドを呼び出せるようになります。