Skip to content

Commit 1851903

Browse files
committed
Fix project_access panic
1 parent 8d326db commit 1851903

File tree

1 file changed

+28
-23
lines changed

1 file changed

+28
-23
lines changed

tfe/resource_tfe_team_project_access.go

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -310,29 +310,34 @@ func resourceTFETeamProjectAccessRead(ctx context.Context, d *schema.ResourceDat
310310
d.Set("project_id", "")
311311
}
312312

313-
project_access := []map[string]interface{}{{
314-
"settings": tmAccess.ProjectAccess.ProjectSettingsPermission,
315-
"teams": tmAccess.ProjectAccess.ProjectTeamsPermission,
316-
}}
317-
318-
workspace_access := []map[string]interface{}{{
319-
"state_versions": tmAccess.WorkspaceAccess.WorkspaceStateVersionsPermission,
320-
"sentinel_mocks": tmAccess.WorkspaceAccess.WorkspaceSentinelMocksPermission,
321-
"runs": tmAccess.WorkspaceAccess.WorkspaceRunsPermission,
322-
"variables": tmAccess.WorkspaceAccess.WorkspaceVariablesPermission,
323-
"create": tmAccess.WorkspaceAccess.WorkspaceCreatePermission,
324-
"locking": tmAccess.WorkspaceAccess.WorkspaceLockingPermission,
325-
"move": tmAccess.WorkspaceAccess.WorkspaceMovePermission,
326-
"delete": tmAccess.WorkspaceAccess.WorkspaceDeletePermission,
327-
"run_tasks": tmAccess.WorkspaceAccess.WorkspaceRunTasksPermission,
328-
}}
329-
330-
if err := d.Set("project_access", project_access); err != nil {
331-
return diag.Errorf("Error setting configuration of team project access %s: %v", d.Id(), err)
332-
}
333-
334-
if err := d.Set("workspace_access", workspace_access); err != nil {
335-
return diag.Errorf("Error setting configuration of team workspace access %s: %v", d.Id(), err)
313+
// These two fields are only available in TFC and TFE v202308-1 and later
314+
if tmAccess.ProjectAccess != nil {
315+
project_access := []map[string]interface{}{{
316+
"settings": tmAccess.ProjectAccess.ProjectSettingsPermission,
317+
"teams": tmAccess.ProjectAccess.ProjectTeamsPermission,
318+
}}
319+
320+
if err := d.Set("project_access", project_access); err != nil {
321+
return diag.Errorf("Error setting configuration of team project access %s: %v", d.Id(), err)
322+
}
323+
}
324+
325+
if tmAccess.WorkspaceAccess != nil {
326+
workspace_access := []map[string]interface{}{{
327+
"state_versions": tmAccess.WorkspaceAccess.WorkspaceStateVersionsPermission,
328+
"sentinel_mocks": tmAccess.WorkspaceAccess.WorkspaceSentinelMocksPermission,
329+
"runs": tmAccess.WorkspaceAccess.WorkspaceRunsPermission,
330+
"variables": tmAccess.WorkspaceAccess.WorkspaceVariablesPermission,
331+
"create": tmAccess.WorkspaceAccess.WorkspaceCreatePermission,
332+
"locking": tmAccess.WorkspaceAccess.WorkspaceLockingPermission,
333+
"move": tmAccess.WorkspaceAccess.WorkspaceMovePermission,
334+
"delete": tmAccess.WorkspaceAccess.WorkspaceDeletePermission,
335+
"run_tasks": tmAccess.WorkspaceAccess.WorkspaceRunTasksPermission,
336+
}}
337+
338+
if err := d.Set("workspace_access", workspace_access); err != nil {
339+
return diag.Errorf("Error setting configuration of team workspace access %s: %v", d.Id(), err)
340+
}
336341
}
337342

338343
return nil

0 commit comments

Comments
 (0)