Skip to content

Commit 7125fda

Browse files
authored
fix: Self Service state reading for Jamf Pro policies (#937)
Fix self_service state reading for Jamf Pro policies - Add missing reinstall_button_text field assignment to state - Handle Jamf Pro auto-population of self_service_display_name by treating policy name as default - Fix inverted boolean logic in default value comparison These changes prevent spurious diffs when self_service block is not explicitly defined in Terraform config but Jamf Pro returns default values.
1 parent 8dbf57f commit 7125fda

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

internal/services/policy/resource_state_self_service.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import (
1111

1212
// stateSelfService Reads response and states self-service items and states only if non-default
1313
func stateSelfService(d *schema.ResourceData, resp *jamfpro.ResourcePolicy, diags *diag.Diagnostics) {
14+
policyName := resp.General.Name
15+
1416
defaults := map[string]any{
1517
"use_for_self_service": false,
1618
"self_service_display_name": "",
@@ -31,10 +33,22 @@ func stateSelfService(d *schema.ResourceData, resp *jamfpro.ResourcePolicy, diag
3133
"feature_on_main_page": resp.SelfService.FeatureOnMainPage,
3234
}
3335

34-
allDefault := false
36+
allDefault := true
3537
for key, value := range current {
38+
// Special case: if self_service_display_name equals the policy name, Jamf Pro auto-populated it
39+
// Treat it as a default value (empty string) since the user didn't explicitly set it
40+
if key == "self_service_display_name" && value == policyName {
41+
continue
42+
}
43+
44+
// Special case: if install_button_text is empty, Jamf Pro returns empty string instead of default
45+
// Treat it as the default "Install"
46+
if key == "install_button_text" && value == "" {
47+
continue
48+
}
49+
3650
if value != defaults[key] {
37-
allDefault = true
51+
allDefault = false
3852
break
3953
}
4054
}
@@ -49,6 +63,7 @@ func stateSelfService(d *schema.ResourceData, resp *jamfpro.ResourcePolicy, diag
4963
out_ss[0]["use_for_self_service"] = resp.SelfService.UseForSelfService
5064
out_ss[0]["self_service_display_name"] = resp.SelfService.SelfServiceDisplayName
5165
out_ss[0]["install_button_text"] = resp.SelfService.InstallButtonText
66+
out_ss[0]["reinstall_button_text"] = resp.SelfService.ReinstallButtonText
5267
out_ss[0]["self_service_description"] = resp.SelfService.SelfServiceDescription
5368
out_ss[0]["force_users_to_view_description"] = resp.SelfService.ForceUsersToViewDescription
5469
out_ss[0]["feature_on_main_page"] = resp.SelfService.FeatureOnMainPage

0 commit comments

Comments
 (0)