ロールAPIの基本¶
アプリケーションメニューから Create and Manage Roles を利用できますが、LiferayのREST APIを利用することも可能です。 これらのサービスを呼び出して、Roleを管理します。
ユーザーを通常の役割に関連付ける¶
新しいLiferay DXPインスタンスを起動し、以下を実行します。
docker run -it -m 8g -p 8080:8080 liferay/dxp:7.4.13-u55。
メールアドレス_test@liferay.com_とパスワード_test_を使用して、http://localhost:8080でLiferayにサインインしてください。 プロンプトが表示されたら、パスワードを _learn_に変更します。
次に、以下の手順を実行します。
Roles API Basics をダウンロードし、解凍してください。.
curl https://learn.liferay.com/dxp/latest/ja/users-and-permissions/developer-guide/liferay-z3v5.zip -O
unzip liferay-z3v5.zip
ユーザーIDの一覧を取得するには、 Users_GET_FromInstance を使用します。 Regular Roleに関連付けたいユーザーIDをメモしておきます。
Roles_GET_FromInstance を使用して、すべてのRole IDのリストを取得します。
roleType: regular
関連付けたいロールIDをメモしておきます。 例えば、「Analytics Administrator Regular Role」タイプ。cURL スクリプトを使用して、ユーザーを通常のロールに関連付けます。 コマンドラインで、
curl
フォルダに移動します。RoleUserAssociation_POST_ToInstance.sh
スクリプトを実行します。1234
を Regular Role の ID に置き換えてください。5678
をユーザーIDに置き換えてください。./RoleUserAssociation_POST_ToInstance.sh 1234 5678
Global Menu → Control Panel → Roles に移動します。 通常の役割]タブで、ユーザーを関連付けるために使用した特定の役割をクリックします。 Assignees タブをクリックします。 選択した役割にユーザーが関連付けられていることを確認します。
RESTサービスは、Javaクライアントを使って呼び出すこともできます。
curl
フォルダから、java
フォルダに移動します。 以下のコマンドでソースファイルをコンパイルします。javac -classpath .:* *.java
RoleUserAssociation_POST_ToInstance.java
クラスを次のコマンドで実行します。java -classpath .:* -DroleId=1234 -DuserAccountId=5678 RoleUserAssociation_POST_ToInstance
cURLコマンドの検証¶
RoleUserAssociation_POST_ToInstance.sh
スクリプトは、cURL コマンドで REST サービスを呼び出します。
curl \
-H "Content-Type: application/json" \
-X POST \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}" \
-u "[email protected]:learn"
コマンドの引数は次のとおりです。
引数 |
説明 |
---|---|
|
リクエストボディのフォーマットがJSONであることを示します。 |
|
指定されたエンドポイントで起動するHTTPメソッド |
|
RESTサービスのエンドポイント |
|
基本的な認証情報 |
注釈
ここでは、デモのためにベーシック認証を使用しています。 本番環境では、 OAuth2 を使ってユーザーを認証する必要があります。 OAuth2を利用したReactアプリケーションのサンプルは、OAuth2を使ってユーザーを認証するをご参照ください。
他のcURLコマンドも同様のJSON引数を使用します。
Javaクラスを調べる¶
RoleUserAssociation_POST_ToInstance.java
クラスは、Role 関連サービスを呼び出すことで、User を Regular Role に関連付けました。
public static void main(String[] args) throws Exception {
RoleResource.Builder builder = RoleResource.builder();
RoleResource roleResource = builder.authentication(
"[email protected]", "learn"
).build();
roleResource.postRoleUserAccountAssociation(
Long.valueOf(System.getProperty("roleId")),
Long.valueOf(System.getProperty("userAccountId")));
}
このクラスは、次の3行のコードのみを使用してRESTサービスを呼び出します。
行(省略形) |
説明 |
---|---|
|
|
|
Basic 認証を指定し、 |
|
|
プロジェクトには、依存関係としてcom.liferay.headless.admin.user.client.jar
ファイルが含まれていることに注意してください。 すべてのRESTアプリケーションのクライアントJAR依存関係情報は、/o/api
でインストール先のAPIエクスプローラーで確認できます。
注釈
main
メソッドのコメントでは、クラスの実行を実演しています。
他のJavaクラスの例もこれと同様であるが、異なる RoleResource
メソッドを呼び出している。
重要
サービスの詳細は、 RoleResource を参照してください。
以下は、cURL と Java を使用して、他の Role
REST サービスを呼び出す例です。
インスタンスからロールを取得する¶
以下のcURLまたはJavaコマンドを実行することで、Roleの一覧を表示することができます。
Roles_GET_FromInstance.sh¶
コマンド:
./Roles_GET_FromInstance.sh
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/roles" \
-u "[email protected]: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(
"[email protected]", "learn"
).build();
Page<Role> role = roleResource.getRolesPage(Pagination.of(1, 2));
System.out.println(role);
}
Instance の Roles
オブジェクトが JSON で表示されます。
役割分担をする¶
以下のcURLまたはJavaコマンドを使用して、特定のRoleを取得します。
Tip
インスタンスの Role
ID を取得するには、 Roles_GET_FromInstance.[java|sh]
を使用します。
Role_GET_ById.sh(ロールゲットバイアイディー)。¶
コマンド:
./Role_GET_ById.sh 1234
コード:
curl \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}" \
-u "[email protected]:learn"
Role_GET_ById.java¶
コマンド:
java -classpath .:* -DroleId=1234 Role_GET_ById
コード:
public static void main(String[] args) throws Exception {
RoleResource.Builder builder = RoleResource.builder();
RoleResource roleResource = builder.authentication(
"[email protected]", "learn"
).build();
System.out.println(
roleResource.getRole(Long.valueOf(System.getProperty("roleId"))));
}
Role
フィールドは、JSONで表示されます。
ユーザーをサイトの役割に関連付ける¶
ユーザーを特定のサイトロールに関連付けることができます。 1234
をRoleのIDに置き換えてください。 5678
をお客様のサイトIDに置き換えてください。 9012
をユーザーIDに置き換えてください。
RoleUserAssociation_POST_ToSite.shを実行します。¶
コマンド:
./RoleUserAssociation_POST_ToSite.sh 1234 5678 9012
コード:
curl \
-H "Content-Type: application/json" \
-X POST \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/site/${3}" \
-u "[email protected]:learn"
RoleUserAssociation_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(
"[email protected]", "learn"
).build();
roleResource.postSiteRoleUserAccountAssociation(
Long.valueOf(System.getProperty("roleId")),
Long.valueOf(System.getProperty("userAccountId")),
Long.valueOf(System.getProperty("siteId")));
}
ユーザーを組織の役割に関連付ける¶
ユーザーを特定の組織ロールに関連付けることができます。 1234
を組織IDに置き換えてください。 5678
を自分のRoleのIDに置き換えてください。 9012
をユーザーIDに置き換えてください。
RoleUserAssociation_POST_ToOrganization.shを実行します。¶
コマンド:
./RoleUserAssociation_POST_ToOrganization.sh 1234 5678 9012
コード:
curl \
-H "Content-Type: application/json" \
-X POST \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/organization/${3}" \
-u "[email protected]:learn"
RoleUserAssociation_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(
"[email protected]", "learn"
).build();
roleResource.postOrganizationRoleUserAccountAssociation(
Long.valueOf(System.getProperty("roleId")),
Long.valueOf(System.getProperty("userAccountId")),
Long.valueOf(System.getProperty("organizationId")));
}
レギュラーロールの関連付けを解除する¶
特定のユーザーから通常の役割の関連付けを削除します。 1234
をRoleのIDに置き換えてください。 5678
をユーザーIDに置き換えてください。
RoleUserAssociation_DELETE_FromInstance.shを実行します。¶
コマンド:
./RoleUserAssociation_DELETE_FromInstance.sh 1234 5678
コード:
curl \
-H "Content-Type: application/json" \
-X DELETE \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}" \
-u "[email protected]:learn"
RoleUserAssociation_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(
"[email protected]", "learn"
).build();
roleResource.deleteRoleUserAccountAssociation(
Long.valueOf(System.getProperty("roleId")),
Long.valueOf(System.getProperty("userAccountId")));
}
サイトの役割の関連付けを削除する¶
特定のユーザーからサイトロールの関連付けを削除する。 1234
をRoleのIDに置き換えてください。 5678
をお客様のサイトIDに置き換えてください。 9012
をユーザーIDに置き換えてください。
RoleUserAssociation_DELETE_FromSite.shを実行します。¶
コマンド:
./RoleUserAssociation_DELETE_FromSite.sh 1234 5678 9012
コード:
curl \
-H "Content-Type: application/json" \
-X DELETE \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/site/${3}" \
-u "[email protected]:learn"
RoleUserAssociation_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(
"[email protected]", "learn"
).build();
roleResource.deleteSiteRoleUserAccountAssociation(
Long.valueOf(System.getProperty("roleId")),
Long.valueOf(System.getProperty("userAccountId")),
Long.valueOf(System.getProperty("siteId")));
}
組織の役割の関連付けを解除する¶
特定のユーザーから組織ロールの関連付けを解除する。 1234
を組織のIDに置き換えてください。 5678
を自分のRoleのIDに置き換えてください。 9012
をユーザーIDに置き換えてください。
RoleUserAssociation_DELETE_FromOrganization.sh¶
コマンド:
./RoleUserAssociation_DELETE_FromOrganization.sh 1234 5678 9012
コード:
curl \
-H "Content-Type: application/json" \
-X DELETE \
"http://localhost:8080/o/headless-admin-user/v1.0/roles/${1}/association/user-account/${2}/organization/${3}" \
-u "[email protected]:learn"
RoleUserAssociation_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(
"[email protected]", "learn"
).build();
roleResource.deleteOrganizationRoleUserAccountAssociation(
Long.valueOf(System.getProperty("roleId")),
Long.valueOf(System.getProperty("userAccountId")),
Long.valueOf(System.getProperty("organizationId")));
}
API Explorer には Role
のすべてのサービスとスキーマが表示され、各サービスを試用するためのインターフェイスが用意されています。