管理工作区成员

使用 AI Studio SDK 邀请成员并更新其角色。邀请返回的成员 ID 是读取成员详情和后续调整角色的交接信息。

任务流程

先选择目标工作区,再用一种联系标识邀请成员。邮箱和手机邀请在对方接受前保持待处理状态;使用 GitHub 登录名时,目录中已有的用户会返回成员 ID,未匹配的用户会返回空 ID,直到该用户首次登录。

获得成员 ID 后,才能读取成员详情、更新角色、更新状态或移除成员。更新角色的请求没有返回成员详情,因此需要再次读取确认。

准备

需要的内容

如何取得

在本页中的作用

已认证的客户端

在首次接入流程中创建。

访问工作区资源。

工作区 ID

从工作区创建、列表或操作者选择中取得。

确定成员操作的范围。

成员姓名和一种联系标识

由管理员提供。

邀请成员。

已分配的角色和默认角色

由管理员按访问要求选择。

确定邀请或角色更新的访问范围。

邀请成员

下面的示例邀请一个邮箱成员,并保存返回的成员 ID。邮箱、手机号码和 GitHub 登录名三者只能提供其中一种;角色集合必须包含默认角色。

import os

import moi_product_sdk as sdk

client = sdk.new_with_personal_access_token(
    os.environ["PRODUCT_API_BASE_URL"],
    os.environ["PRODUCT_API_KEY"],
)
workspace = client.workspace("<workspace-id>")
default_role_id = 1
invitation = workspace.invite_member(
    "<member-name>",
    default_role_id,
    sdk.with_user_email("<member-email>"),
    sdk.with_user_role_ids(default_role_id),
)
member_id = invitation.id
print(member_id)
package main

import (
	"context"
	"fmt"
	"os"

	sdk "github.com/matrixorigin/matrixflow/sdk/go-sdk"
)

func main() {
	ctx := context.Background()
	client, err := sdk.NewWithPersonalAccessToken(
		os.Getenv("PRODUCT_API_BASE_URL"),
		os.Getenv("PRODUCT_API_KEY"),
	)
	if err != nil {
		panic(err)
	}
	workspace, err := client.Workspace("<workspace-id>")
	if err != nil {
		panic(err)
	}
	const defaultRoleID = 1
	invitation, err := workspace.InviteMember(
		ctx,
		"<member-name>",
		defaultRoleID,
		sdk.WithUserEmail("<member-email>"),
		sdk.WithUserRoleIDs(defaultRoleID),
	)
	if err != nil {
		panic(err)
	}
	fmt.Println(invitation.GetId())
}

空成员 ID 表示还不能继续执行成员更新操作。请等待对应用户完成登录或接受邀请,再从成员列表或详情中取得可用 ID。

确认成员角色

使用上一步取得的成员 ID 更新角色后,读取成员详情确认结果。角色更新只代表请求返回;后续需要依赖访问范围时,应以重新读取到的成员信息为准。

member = workspace.member(member_id)
role_id = 1
member.set_roles([role_id], role_id)
member_info = member.info()
print(member_info)
member, err := workspace.Member(memberID)
if err != nil {
	panic(err)
}
roleID := 1
if err := member.SetRoles(ctx, []int{roleID}, roleID); err != nil {
	panic(err)
}
memberInfo, err := member.Info(ctx)
if err != nil {
	panic(err)
}
_ = memberInfo

选择 Go 客户端的当前角色

Go 客户端可在创建时为指定工作区配置当前角色。角色 ID 必须是没有前导零的正十进制整数;该配置只作用于对应工作区的请求。Python 当前没有相同的客户端配置入口。

client, err := sdk.NewWithPersonalAccessToken(
	os.Getenv("PRODUCT_API_BASE_URL"),
	os.Getenv("PRODUCT_API_KEY"),
	sdk.WithWorkspaceCurrentRoleID("<workspace-id>", "<role-id>"),
)
if err != nil {
	panic(err)
}
_ = client

下一步

最后更新于