プロジェクトユーザーの管理
CMS SDKを使用したプロジェクトユーザーの管理方法を説明します。このページでは以下の内容を解説します。
- ユーザーの単体取得・一覧取得
- ユーザーの招待
- ユーザーの削除
- グループの管理
ユーザーの一覧取得
プロジェクト内のユーザー一覧を取得します。
const data = await client.users.listUsers();
フィルタ
特定の条件でユーザーを絞り込むことができます。以下の項目でフィルタが可能です。
email
: ユーザーのメールアドレスname
: ユーザーの名前
以下の例では、名前が一致するユーザーを取得します。
const data = await client.users.listUsers({
filter: { name: "John Doe" },
});
以下の例では、メールアドレスに @example.com
を含むユーザーを取得します。
const data = await client.users.listUsers({
filter: { email: { $contains: "@example.com" } },
});
条件の指定方法については、フィルタ を参照してください。
ソート
sort
プロパティを指定して、作成日時または更新日時のどちらかでソートできます。
const data = await client.users.listUsers({
sort: "createdAt",
});
const data = await client.users.listUsers({
sort: "updatedAt",
});
order
プロパティで順序を指定することも可能です。
const data = await client.users.listUsers({
sort: "createdAt",
order: "asc",
});
const data = await client.users.listUsers({
sort: "createdAt",
order: "desc",
});
ページネーション
取得件数とオフセットを指定してユーザーリストを分割取得します。
const data = await client.users.listUsers({
limit: 10,
offset: 0,
});
limit
パラメータを指定しない場合、デフォルトで100件まで取得されます。
ユーザーの詳細取得
指定したIDのユーザー情報を取得します。
const data = await client.users.getUser(userId);
ユーザーの招待
新しいユーザーをプロジェクトに招待します。招待メールが送信され、ユーザーはパスワード設定後にプロジェクトに参加できます。
const data = await client.users.createUserWithEmailInvite({
email: "user@example.com",
name: "John Doe",
groupRoles: [{ group: "admin", role: "editor" }],
});
ユーザーの削除
指定したIDのユーザーをプロジェクトから削除します。
const data = await client.users.deleteUser(userId);
グループの管理
グループは権限管理のための仕組みです。詳細については、権限 を参照してください。
グループの一覧取得
プロジェクト内のグループ一覧を取得します。
const data = await client.users.listAllGroups();
グループの削除
指定したグループを削除します。
await client.users.deleteGroup("groupName");
グループ内ユーザーの一覧取得
指定したグループに属するユーザーの一覧を取得します。
const data = await client.users.listUsersInGroup("groupName");
フィルタ
filter
パラメータを使用して、特定の条件でユーザーを絞り込むことができます。以下の項目でフィルタが可能です。
email
: ユーザーのメールアドレスname
: ユーザーの名前 以下の例では、名前が一致するユーザーを取得します。
const data = await client.users.listUsersInGroup("groupName", {
filter: { name: "John Doe" },
});
以下の例では、メールアドレスに @example.com
を含むユーザーを取得します。
const data = await client.users.listUsersInGroup("groupName", {
filter: { email: { $contains: "@example.com" } },
});
条件の指定方法については、フィルタ を参照してください。
ソート
sort
プロパティを指定して、作成日時または更新日時のどちらかでソートできます。
const data = await client.users.listUsersInGroup("groupName", {
sort: "createdAt",
});
const data = await client.users.listUsersInGroup("groupName", {
sort: "updatedAt",
});
order
プロパティで順序を指定することも可能です。
const data = await client.users.listUsersInGroup("groupName", {
sort: "createdAt",
order: "asc",
});
const data = await client.users.listUsersInGroup("groupName", {
sort: "createdAt",
order: "desc",
});
ページネーション
const data = await client.users.listUsersInGroup("groupName", {
limit: 20,
offset: 0,
});
limit
パラメータを指定しない場合、デフォルトで100件まで取得されます。
グループへのユーザー追加
ユーザーIDを指定して、ユーザーを指定したグループに追加し、ロールを設定します。
const data = await client.users.addUserToGroup({
userId: userId,
group: "admin",
role: "editor",
});
メールアドレスを指定してユーザーを追加することも可能です。
const data = await client.users.addUserToGroup({
email: "user@example.com",
group: "admin",
role: "editor",
});
グループからのユーザー削除
指定したユーザーをグループから削除します。
const data = await client.users.removeUserFromGroup({
userId: userId,
group: "groupName",
});