@@ -37,7 +37,7 @@ func NewUserResource() resource.Resource {
37
37
38
38
// UserResource defines the resource implementation.
39
39
type UserResource struct {
40
- client * codersdk. Client
40
+ data * CoderdProviderData
41
41
}
42
42
43
43
// UserResourceModel describes the resource data model.
@@ -130,7 +130,7 @@ func (r *UserResource) Configure(ctx context.Context, req resource.ConfigureRequ
130
130
return
131
131
}
132
132
133
- client , ok := req .ProviderData .(* codersdk. Client )
133
+ client , ok := req .ProviderData .(* CoderdProviderData )
134
134
135
135
if ! ok {
136
136
resp .Diagnostics .AddError (
@@ -141,7 +141,7 @@ func (r *UserResource) Configure(ctx context.Context, req resource.ConfigureRequ
141
141
return
142
142
}
143
143
144
- r .client = client
144
+ r .data = client
145
145
}
146
146
147
147
func (r * UserResource ) Create (ctx context.Context , req resource.CreateRequest , resp * resource.CreateResponse ) {
@@ -153,7 +153,9 @@ func (r *UserResource) Create(ctx context.Context, req resource.CreateRequest, r
153
153
return
154
154
}
155
155
156
- me , err := r .client .User (ctx , codersdk .Me )
156
+ client := r .data .Client
157
+
158
+ me , err := client .User (ctx , codersdk .Me )
157
159
if err != nil {
158
160
resp .Diagnostics .AddError ("Client Error" , fmt .Sprintf ("Unable to get current user, got error: %s" , err ))
159
161
return
@@ -168,7 +170,7 @@ func (r *UserResource) Create(ctx context.Context, req resource.CreateRequest, r
168
170
if data .LoginType .ValueString () != "" {
169
171
loginType = codersdk .LoginType (data .LoginType .ValueString ())
170
172
}
171
- user , err := r . client .CreateUser (ctx , codersdk.CreateUserRequest {
173
+ user , err := client .CreateUser (ctx , codersdk.CreateUserRequest {
172
174
Email : data .Email .ValueString (),
173
175
Username : data .Username .ValueString (),
174
176
Password : data .Password .ValueString (),
@@ -189,7 +191,7 @@ func (r *UserResource) Create(ctx context.Context, req resource.CreateRequest, r
189
191
if data .Name .ValueString () != "" {
190
192
name = data .Name .ValueString ()
191
193
}
192
- user , err = r . client .UpdateUserProfile (ctx , user .ID .String (), codersdk.UpdateUserProfileRequest {
194
+ user , err = client .UpdateUserProfile (ctx , user .ID .String (), codersdk.UpdateUserProfileRequest {
193
195
Username : data .Username .ValueString (),
194
196
Name : name ,
195
197
})
@@ -206,7 +208,7 @@ func (r *UserResource) Create(ctx context.Context, req resource.CreateRequest, r
206
208
tflog .Trace (ctx , "updating user roles" , map [string ]any {
207
209
"new_roles" : roles ,
208
210
})
209
- user , err = r . client .UpdateUserRoles (ctx , user .ID .String (), codersdk.UpdateRoles {
211
+ user , err = client .UpdateUserRoles (ctx , user .ID .String (), codersdk.UpdateRoles {
210
212
Roles : roles ,
211
213
})
212
214
if err != nil {
@@ -216,7 +218,7 @@ func (r *UserResource) Create(ctx context.Context, req resource.CreateRequest, r
216
218
tflog .Trace (ctx , "successfully updated user roles" )
217
219
218
220
if data .Suspended .ValueBool () {
219
- _ , err = r . client .UpdateUserStatus (ctx , data .ID .ValueString (), codersdk .UserStatus ("suspended" ))
221
+ _ , err = client .UpdateUserStatus (ctx , data .ID .ValueString (), codersdk .UserStatus ("suspended" ))
220
222
}
221
223
if err != nil {
222
224
resp .Diagnostics .AddError ("Client Error" , fmt .Sprintf ("Unable to update user status, got error: %s" , err ))
@@ -236,7 +238,9 @@ func (r *UserResource) Read(ctx context.Context, req resource.ReadRequest, resp
236
238
return
237
239
}
238
240
239
- user , err := r .client .User (ctx , data .ID .ValueString ())
241
+ client := r .data .Client
242
+
243
+ user , err := client .User (ctx , data .ID .ValueString ())
240
244
if err != nil {
241
245
resp .Diagnostics .AddError ("Client Error" , fmt .Sprintf ("Unable to get current user, got error: %s" , err ))
242
246
return
@@ -271,7 +275,9 @@ func (r *UserResource) Update(ctx context.Context, req resource.UpdateRequest, r
271
275
return
272
276
}
273
277
274
- user , err := r .client .User (ctx , data .ID .ValueString ())
278
+ client := r .data .Client
279
+
280
+ user , err := client .User (ctx , data .ID .ValueString ())
275
281
if err != nil {
276
282
resp .Diagnostics .AddError ("Client Error" , fmt .Sprintf ("Unable to get current user, got error: %s" , err ))
277
283
return
@@ -285,7 +291,7 @@ func (r *UserResource) Update(ctx context.Context, req resource.UpdateRequest, r
285
291
"new_username" : data .Username .ValueString (),
286
292
"new_name" : data .Name .ValueString (),
287
293
})
288
- _ , err = r . client .UpdateUserProfile (ctx , user .ID .String (), codersdk.UpdateUserProfileRequest {
294
+ _ , err = client .UpdateUserProfile (ctx , user .ID .String (), codersdk.UpdateUserProfileRequest {
289
295
Username : data .Username .ValueString (),
290
296
Name : data .Name .ValueString (),
291
297
})
@@ -302,7 +308,7 @@ func (r *UserResource) Update(ctx context.Context, req resource.UpdateRequest, r
302
308
tflog .Trace (ctx , "updating user roles" , map [string ]any {
303
309
"new_roles" : roles ,
304
310
})
305
- _ , err = r . client .UpdateUserRoles (ctx , user .ID .String (), codersdk.UpdateRoles {
311
+ _ , err = client .UpdateUserRoles (ctx , user .ID .String (), codersdk.UpdateRoles {
306
312
Roles : roles ,
307
313
})
308
314
if err != nil {
@@ -312,7 +318,7 @@ func (r *UserResource) Update(ctx context.Context, req resource.UpdateRequest, r
312
318
tflog .Trace (ctx , "successfully updated user roles" )
313
319
314
320
tflog .Trace (ctx , "updating password" )
315
- err = r . client .UpdateUserPassword (ctx , user .ID .String (), codersdk.UpdateUserPasswordRequest {
321
+ err = client .UpdateUserPassword (ctx , user .ID .String (), codersdk.UpdateUserPasswordRequest {
316
322
Password : data .Password .ValueString (),
317
323
})
318
324
if err != nil && ! strings .Contains (err .Error (), "New password cannot match old password." ) {
@@ -323,10 +329,10 @@ func (r *UserResource) Update(ctx context.Context, req resource.UpdateRequest, r
323
329
324
330
var statusErr error
325
331
if data .Suspended .ValueBool () {
326
- _ , statusErr = r . client .UpdateUserStatus (ctx , data .ID .ValueString (), codersdk .UserStatus ("suspended" ))
332
+ _ , statusErr = client .UpdateUserStatus (ctx , data .ID .ValueString (), codersdk .UserStatus ("suspended" ))
327
333
}
328
334
if ! data .Suspended .ValueBool () && user .Status == codersdk .UserStatusSuspended {
329
- _ , statusErr = r . client .UpdateUserStatus (ctx , data .ID .ValueString (), codersdk .UserStatus ("active" ))
335
+ _ , statusErr = client .UpdateUserStatus (ctx , data .ID .ValueString (), codersdk .UserStatus ("active" ))
330
336
}
331
337
if statusErr != nil {
332
338
resp .Diagnostics .AddError ("Client Error" , fmt .Sprintf ("Unable to update user status, got error: %s" , err ))
@@ -347,13 +353,15 @@ func (r *UserResource) Delete(ctx context.Context, req resource.DeleteRequest, r
347
353
return
348
354
}
349
355
356
+ client := r .data .Client
357
+
350
358
id , err := uuid .Parse (data .ID .ValueString ())
351
359
if err != nil {
352
360
resp .Diagnostics .AddError ("Data Error" , fmt .Sprintf ("Unable to parse user ID, got error: %s" , err ))
353
361
return
354
362
}
355
363
tflog .Trace (ctx , "deleting user" )
356
- err = r . client .DeleteUser (ctx , id )
364
+ err = client .DeleteUser (ctx , id )
357
365
if err != nil {
358
366
resp .Diagnostics .AddError ("Client Error" , fmt .Sprintf ("Unable to delete user, got error: %s" , err ))
359
367
return
0 commit comments