При создании клиента через API, как мы назначаем ему роль Client+ и проектируем их?

При создании клиента через 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 ответ

Клиент + - это обычный экземпляр клиента с дополнительными разрешениями. Эти дополнительные разрешения устанавливаются с помощью custom permissions имущество. Обратите внимание, что это работает, только если Client+ включен в разделе дополнений приложения.

Видимо, POST-ин к /users API ломается, но вы можете использовать обычный маршрут приглашения и POST на /users/invite Конечная точка API с этой полезной нагрузкой:

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

пригласить пользователей с разрешениями Client+.

Другие вопросы по тегам