1

通过 API 创建客户端时,我们如何给他们分配 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);

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

4

1 回答 1

0

Client+ 是一个普通的 Client 实例,具有额外的权限。这些额外的权限是使用custom permissions属性设置的。请注意,这仅在应用程序的附加组件部分中启用了 Client+ 时才有效。

显然,POST 到/usersAPI 中断,但您可以使用常规邀请路由和/users/inviteAPI 端点上的 POST 与此有效负载:

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

邀请具有 Client+ 权限的用户。

于 2016-09-13T13:33:30.020 回答