FeaturesCMS SDKプロジェクトユーザーの管理

プロジェクトユーザーの管理

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",
});