当通过API创建客户端时,我们如何将client +角色和项目分配给它们?


When creating a client via the API, how do we assign the Client+ role and project to them?

当通过API创建客户端时,我们如何将client +角色分配给它们并将它们分配给项目?我创建了一个脚本,根据用户的电子邮件地址将用户重定向到项目。

客户端已创建,但我认为只能分配client角色(不存在client+角色)。额外的客户端加上权限来自自定义权限:管理任务,从我可以看到的数据库。

当我包含这个权限时,客户端永远不会被创建。

这是我创建客户端的代码:
    $payload = [
        "type" => "Client",
        "first_name" => $first_name,
        "last_name" => $last_name,
        "email" => $email,
        "password" => $this->rand_string(15),
        "company_id" => $company,
    ];
    $result = $this->client->post("/users", $payload);
    $result_json = $result->getJson();
    $client_id = @$result_json['single']['id'];
    $payload = [
        "id" => $project,
        "members" => array(
            $client_id
        ),
    ];
    $result = $this->client->post("/projects", $payload);

客户端被创建,尽管没有正确的权限,并且客户端永远不会添加到项目中(这意味着他们不能针对它创建任务)。

Client+是一个普通的Client实例,具有额外的权限。这些额外的权限是使用custom permissions属性设置的。请注意,只有在应用程序的Add-Ons部分启用Client+时才会起作用。

显然,发送到/users API会中断,但您可以使用常规邀请路由并在/users/invite API端点上发送此有效负载:

$payload = [
    "role" => "Client",
    "custom_permissions" => ["can_manage_tasks"],
    "email_addresses" => [$email],
    "company_id" => $company_id,
    "project_ids" : [1, 2, 3],
];