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

ロールAPIの基本

アプリケーション メニューから ロールを作成および管理 できますが、Liferay の REST API を使用することもできます。 ロールを管理するには、これらのサービスを呼び出します。

ユーザーを通常ロールに関連付ける

新しいLiferay DXPインスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/dxp:2025.q1.6-lts

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

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

  1. Roles API Basicsをダウンロードして解凍します。

    curl https://resources.learn.liferay.com/examples/liferay-z3v5.zip -O
    
    unzip liferay-z3v5.zip
    
  2. Users_GET_FromInstance を使用して、ユーザー ID のリストを取得します。 通常ロールに関連付けるユーザー ID をメモします。

  3. すべてのロール ID のリストを取得するには、 Roles_GET_FromInstance を使用します。 関連付けるロール ID ( roleType: regular) をメモします。 たとえば、Analytics 管理者の通常ロール タイプなどです。

  4. cURL スクリプトを使用して、ユーザーを通常のロールに関連付けます。 コマンドラインで、curlフォルダに移動します。 RolesAssociationUserAccount_POST_ToInstance.sh スクリプトを実行します。 1234 を通常のロールの ID に置き換えます。 5678 をユーザーのIDに置き換えます。

    ./RolesAssociationUserAccount_POST_ToInstance.sh 1234 5678
    
  5. グローバル メニューコントロール パネルロールに移動します。 [通常の役割] タブで、ユーザーを関連付けるために使用した特定の役割をクリックします。 担当者 タブをクリックします。 ユーザーが選択したロールに関連付けられていることを確認します。

    ユーザーが関連付けられていることを確認します。

  6. RESTサービスは、Javaクライアントを使って呼び出すこともできます。 curl フォルダから、 java フォルダに移動します。 以下のコマンドでソースファイルをコンパイルします。

    javac -classpath .:* *.java
    
  7. 次のコマンドで RoleUserAssociation_POST_ToInstance.java クラスを実行します。

    java -classpath .:* -DroleId=1234 -DuserAccountId=5678 RoleUserAssociation_POST_ToInstance
    

cURLコマンドの検証

RolesAssociationUserAccount_POST_ToInstance.sh スクリプトは、cURL コマンドを使用して REST サービスを呼び出します。

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}" \
	--header "Content-Type: application/json" \
	--request "POST" \
	--user "test@liferay.com:learn"

ここでは、コマンドの引数を紹介します。

引数説明
-H "Content-Type: application/json"リクエストボディのフォーマットがJSONであることを示します。
-X POST指定されたエンドポイントで起動するHTTPメソッド
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}"RESTサービスのエンドポイント
-u "test@liferay.com:learn"基本的な認証情報

!!1 注記 ここではデモンストレーションの目的で基本認証が使用されています。 本番環境では、 OAuth2経由でユーザーを認証する必要があります。 OAuth2 を使用するサンプル React アプリケーションについては、 OAuth2 を使用してユーザーを承認する を参照してください。

他のcURLコマンドも同様のJSON引数を使用しています。

Javaクラスを調べる

RoleUserAssociation_POST_ToInstance.java クラスは、ロール関連のサービスを呼び出すことによって、ユーザーを通常のロールに関連付けました。

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	roleResource.postRoleUserAccountAssociation(
		Long.valueOf(System.getProperty("roleId")),
		Long.valueOf(System.getProperty("userAccountId")));
}

このクラスは、わずか3行のコードでRESTサービスを呼び出します。

行(省略形)説明
RoleResource.Builder builder = ...RoleResource サービス インスタンスを生成するための Builder を取得します。
RoleResource roleResource = builder.authentication(...).build();基本認証を指定し、 RoleResource サービス インスタンスを生成します。
roleResource.postRoleUserAccountAssociation(...);postRoleUserAccountAssociation メソッドを呼び出し、データを post に渡します。

プロジェクトには、依存関係としてcom.liferay.headless.admin.user.client.jarファイルが含まれていることに注意してください。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/apiでインストール先のAPIエクスプローラーで確認できます。

メイン メソッドのコメントは、クラスの実行を示しています。

他の Java クラスの例もこれに似ていますが、異なる RoleResource メソッドを呼び出します。

重要

サービスの詳細については、 RoleResource を参照してください。

以下は、cURL と Java を使用して他の Role REST サービスを呼び出す例です。

インスタンスからロールを取得する

次の cURL または Java コマンドを実行すると、ロールを一覧表示できます。

Roles_GET_FromInstance.sh

コマンド:

./Roles_GET_FromInstance.sh

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles" \
	--user "test@liferay.com:learn"

Roles_GET_FromInstance.java

コマンド:

java -classpath .:* Roles_GET_FromInstance

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	Page<Role> role = roleResource.getRolesPage(Pagination.of(1, 2));

	System.out.println(role);
}

インスタンスの ロール オブジェクトが JSON で表示されます。

役割を取得する

次の cURL または Java コマンドを使用して特定のロールを取得します。

ヒント

インスタンス Role ID を取得するには、 Roles_GET_FromInstance.[java|sh] を使用します。

Roles_GET_ById.sh

コマンド:

./Roles_GET_ById.sh 1234

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}" \
	--user "test@liferay.com:learn"

Roles_GET_ById.java

コマンド:

java -classpath .:* -DroleId=1234 Roles_GET_ById

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	System.out.println(
		roleResource.getRole(Long.valueOf(System.getProperty("roleId"))));
}

ロール フィールドが JSON に表示されます。

ユーザーをサイトロールに関連付ける

ユーザーを特定のサイト ロールに関連付けることができます。 1234 をロールの ID に置き換えます。 5678をサイトのIDに置き換えてください。 9012 をユーザーIDに置き換えます。

ロールアソシエーションユーザーアカウント_POST_ToSite.sh

コマンド:

./RolesAssociationUserAccount_POST_ToSite.sh 1234 5678 9012

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/site/${3}" \
	--header "Content-Type: application/json" \
	--request "POST" \
	--user "test@liferay.com:learn"

ロールユーザーアソシエーション_POST_ToSite.java

コマンド:

java -classpath .:* -DroleId=1234 -DsiteId=5678 -DuserAccountId=9012 RoleUserAssociation_POST_ToSite

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	roleResource.postSiteRoleUserAccountAssociation(
		Long.valueOf(System.getProperty("roleId")),
		Long.valueOf(System.getProperty("userAccountId")),
		Long.valueOf(System.getProperty("siteId")));
}

ユーザーを組織ロールに関連付ける

ユーザーを特定の組織ロールに関連付けることができます。 1234 を組織の ID に置き換えます。 5678 を自分のロールの ID に置き換えます。 9012 をユーザーIDに置き換えます。

ロール協会ユーザーアカウント_POST_ToOrganization.sh

コマンド:

./RolesAssociationUserAccount_POST_ToOrganization.sh 1234 5678 9012

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/organization/${3}" \
	--header "Content-Type: application/json" \
	--request "POST" \
	--user "test@liferay.com:learn"

ロールユーザーアソシエーション_POST_ToOrganization.java

コマンド:

java -classpath .:* -DorganizationId=1234 -DroleId=5678 -DuserAccountId=9012 RoleUserAssociation_POST_ToOrganization

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	roleResource.postOrganizationRoleUserAccountAssociation(
		Long.valueOf(System.getProperty("roleId")),
		Long.valueOf(System.getProperty("userAccountId")),
		Long.valueOf(System.getProperty("organizationId")));
}

通常の役割の関連付けを削除する

特定のユーザーから通常の役割の関連付けを削除します。 1234 をロールの ID に置き換えます。 5678 をユーザーIDに置き換えます。

RolesAssociationUserAccount_DELETE_FromInstance.sh

コマンド:

./RolesAssociationUserAccount_DELETE_FromInstance.sh 1234 5678

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}" \
	--header "Content-Type: application/json" \
	--request "DELETE" \
	--user "test@liferay.com:learn"

ロールユーザーアソシエーション_DELETE_FromInstance.java

コマンド

java -classpath .:* -DroleId=1234 -DuserAccountId=5678 RoleUserAssociation_DELETE_FromInstance

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	roleResource.deleteRoleUserAccountAssociation(
		Long.valueOf(System.getProperty("roleId")),
		Long.valueOf(System.getProperty("userAccountId")));
}

サイトロールの関連付けを削除

特定のユーザーからサイト ロールの関連付けを削除します。 1234 をロールの ID に置き換えます。 5678をサイトのIDに置き換えてください。 9012 をユーザーIDに置き換えます。

RolesAssociationUserAccount_DELETE_FromSite.sh

コマンド:

./RolesAssociationUserAccount_DELETE_FromSite.sh 1234 5678 9012

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/site/${3}" \
	--header "Content-Type: application/json" \
	--request "DELETE" \
	--user "test@liferay.com:learn"

ロールユーザーアソシエーション_DELETE_FromSite.java

コマンド

java -classpath .:* -DroleId=1234 -DsiteId=5678 -DuserAccountId=9012 RoleUserAssociation_DELETE_FromSite

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	roleResource.deleteSiteRoleUserAccountAssociation(
		Long.valueOf(System.getProperty("roleId")),
		Long.valueOf(System.getProperty("userAccountId")),
		Long.valueOf(System.getProperty("siteId")));
}

組織の役割の関連付けを削除する

特定のユーザーから組織ロールの関連付けを削除します。 1234 を組織の ID に置き換えます。 5678 を自分のロールの ID に置き換えます。 9012 をユーザーIDに置き換えます。

RolesAssociationUserAccount_DELETE_FromOrganization.sh

コマンド:

./RolesAssociationUserAccount_DELETE_FromOrganization.sh 1234 5678 9012

コード:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/organization/${3}" \
	--header "Content-Type: application/json" \
	--request "DELETE" \
	--user "test@liferay.com:learn"

ロールユーザー関連付け_DELETE_FromOrganization.java

コマンド

java -classpath .:* -DorganizationId=1234 -DroleId=5678 -DuserAccountId=9012 RoleUserAssociation_DELETE_FromOrganization

コード:

public static void main(String[] args) throws Exception {
	RoleResource.Builder builder = RoleResource.builder();

	RoleResource roleResource = builder.authentication(
		"test@liferay.com", "learn"
	).build();

	roleResource.deleteOrganizationRoleUserAccountAssociation(
		Long.valueOf(System.getProperty("roleId")),
		Long.valueOf(System.getProperty("userAccountId")),
		Long.valueOf(System.getProperty("organizationId")));
}

API エクスプローラー には、すべての ロール サービスとスキーマが表示され、各サービスを試すためのインターフェースがあります。

Liferay DXP 2024.Q4+/Portal GA129+では、外部参照コードを使用してロールを GET/PUT/PATCH/DELETE できます。