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

时间:2016-09-12 23:54:32

标签: php api activecollab

通过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);

客户端已创建,但没有正确的权限,客户端永远不会添加到项目中(这意味着他们无法对其进行任务)。

1 个答案:

答案 0 :(得分:0)

Client +是一个常规客户端实例,具有额外权限。使用custom permissions属性设置这些额外权限。请注意,仅当应用程序的“附加组件”部分中启用了Client +时,此方法才有效。

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

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

邀请具有客户端+权限的用户。