Commit caef15e
authored
Fix company and department fields not being cleared when removed from user configuration (#190)
When users removed `company` and `department` fields from their
Terraform configuration, the fields were not being cleared in OneLogin
despite `terraform plan` showing the expected change. The fields would
remain set in the OneLogin UI even after applying the configuration.
## Root Cause
The issue was in the `userschema.Inflate()` function in
`ol_schema/user/user.go`. When fields are removed from Terraform
configuration, `d.Get()` returns empty strings (`""`), not `nil`. The
inflate function used this pattern:
```go
if company, notNil := s["company"].(string); notNil {
out.Company = company
}
```
The `notNil` check evaluates to `false` for empty strings, so these
fields were completely omitted from the User struct sent to the OneLogin
API. When fields are missing from the API request, OneLogin doesn't
update them, leaving the old values unchanged.
## Solution
Modified the condition to use `exists` instead of `notNil`, allowing
empty strings to be included in the API request:
```go
// Always set company and department fields, even if empty, to allow clearing them
if company, exists := s["company"].(string); exists {
out.Company = company
}
```
Now when users remove these fields from their Terraform configuration:
1. `d.Get()` returns empty strings
2. The empty strings are included in the User struct
3. OneLogin API receives empty strings and clears the fields
4. The behavior matches what `terraform plan` shows
## Testing
Added comprehensive tests covering:
- Fields with values → correctly set
- Fields as empty strings → included to clear fields
- Fields missing from input → zero values (unchanged behavior)
- Mixed scenarios → one empty, one with value
All existing tests continue to pass, confirming no breaking changes.
Fixes #171.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey3.medallia.com/?EAHeSx-AP01bZqG0Ld9QLQ) to start
the survey.2 files changed
+119
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
227 | 227 | | |
228 | 228 | | |
229 | 229 | | |
230 | | - | |
| 230 | + | |
| 231 | + | |
231 | 232 | | |
232 | 233 | | |
233 | 234 | | |
234 | | - | |
| 235 | + | |
235 | 236 | | |
236 | 237 | | |
237 | 238 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
121 | 122 | | |
122 | 123 | | |
123 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
124 | 240 | | |
125 | 241 | | |
126 | 242 | | |
| |||
0 commit comments