当通过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],
];