From 631df81fcd78914972574278ae434c1f6f5137df Mon Sep 17 00:00:00 2001 From: Tomer Heber Date: Wed, 30 Nov 2022 01:18:55 -0600 Subject: [PATCH] Feat: new custom role resource (#546) --- client/http/client.go | 11 +++++++---- .../env0_user_organization_assignment/resource.tf | 15 +++++++++++++++ tests/integration/026_custom_role/main.tf | 10 ++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 examples/resources/env0_user_organization_assignment/resource.tf diff --git a/client/http/client.go b/client/http/client.go index 38da03fe..38a01a88 100644 --- a/client/http/client.go +++ b/client/http/client.go @@ -62,10 +62,13 @@ func (client *HttpClient) Post(path string, request interface{}, response interf } func (client *HttpClient) Put(path string, request interface{}, response interface{}) error { - result, err := client.request(). - SetBody(request). - SetResult(response). - Put(path) + req := client.request().SetBody(request) + if response != nil { + req = req.SetResult(response) + } + + result, err := req.Put(path) + return client.httpResult(result, err) } diff --git a/examples/resources/env0_user_organization_assignment/resource.tf b/examples/resources/env0_user_organization_assignment/resource.tf new file mode 100644 index 00000000..f35ff092 --- /dev/null +++ b/examples/resources/env0_user_organization_assignment/resource.tf @@ -0,0 +1,15 @@ +data "env0_user" "user_example" { + email = "example@email.com" +} + +resource "env0_custom_role" "custom_role" { + name = "custom-role" + permissions = [ + "EDIT_PROJECT_SETTINGS" + ] +} + +resource "env0_user_organization_assignment" "user_org" { + user_id = data.env0_user.user_example.id + custom_role_id = env0_custom_role.custom_role.id +} diff --git a/tests/integration/026_custom_role/main.tf b/tests/integration/026_custom_role/main.tf index 76926c1f..156476b9 100644 --- a/tests/integration/026_custom_role/main.tf +++ b/tests/integration/026_custom_role/main.tf @@ -26,3 +26,13 @@ data "env0_custom_role" "roles" { for_each = toset(data.env0_custom_roles.all_roles.names) name = each.value } + +resource "env0_api_key" "test_api_key" { + name = "api-key-${random_string.random.result}" +} + +resource "env0_user_organization_assignment" "user_org" { + user_id = env0_api_key.test_api_key.id + custom_role_id = var.second_run ? null : env0_custom_role.custom_role1.id + role = var.second_run ? "Admin" : null +}