@@ -97,13 +97,13 @@ func (d *DB) FindProjectInfoBySecretKey(
97
97
// FindProjectInfoByName returns a project by the given name.
98
98
func (d * DB ) FindProjectInfoByName (
99
99
_ context.Context ,
100
- owner string ,
100
+ owner types. ID ,
101
101
name string ,
102
102
) (* database.ProjectInfo , error ) {
103
103
txn := d .db .Txn (false )
104
104
defer txn .Abort ()
105
105
106
- raw , err := txn .First (tblProjects , "owner_name" , owner , name )
106
+ raw , err := txn .First (tblProjects , "owner_name" , owner . String () , name )
107
107
if err != nil {
108
108
return nil , fmt .Errorf ("find project by owner and name: %w" , err )
109
109
}
@@ -143,7 +143,7 @@ func (d *DB) EnsureDefaultUserAndProject(
143
143
return nil , nil , err
144
144
}
145
145
146
- project , err := d .ensureDefaultProjectInfo (ctx , username , clientDeactivateThreshold )
146
+ project , err := d .ensureDefaultProjectInfo (ctx , user . ID , clientDeactivateThreshold )
147
147
if err != nil {
148
148
return nil , nil , err
149
149
}
@@ -187,7 +187,7 @@ func (d *DB) ensureDefaultUserInfo(
187
187
// ensureDefaultProjectInfo creates the default project if it does not exist.
188
188
func (d * DB ) ensureDefaultProjectInfo (
189
189
_ context.Context ,
190
- defaultUsername string ,
190
+ defaultUserID types. ID ,
191
191
defaultClientDeactivateThreshold string ,
192
192
) (* database.ProjectInfo , error ) {
193
193
txn := d .db .Txn (true )
@@ -200,7 +200,7 @@ func (d *DB) ensureDefaultProjectInfo(
200
200
201
201
var info * database.ProjectInfo
202
202
if raw == nil {
203
- info = database .NewProjectInfo (database .DefaultProjectName , defaultUsername , defaultClientDeactivateThreshold )
203
+ info = database .NewProjectInfo (database .DefaultProjectName , defaultUserID , defaultClientDeactivateThreshold )
204
204
info .ID = database .DefaultProjectID
205
205
if err := txn .Insert (tblProjects , info ); err != nil {
206
206
return nil , fmt .Errorf ("insert project: %w" , err )
@@ -217,15 +217,15 @@ func (d *DB) ensureDefaultProjectInfo(
217
217
func (d * DB ) CreateProjectInfo (
218
218
_ context.Context ,
219
219
name string ,
220
- owner string ,
220
+ owner types. ID ,
221
221
clientDeactivateThreshold string ,
222
222
) (* database.ProjectInfo , error ) {
223
223
txn := d .db .Txn (true )
224
224
defer txn .Abort ()
225
225
226
226
// NOTE(hackerwins): Check if the project already exists.
227
227
// https://github.com/hashicorp/go-memdb/issues/7#issuecomment-270427642
228
- existing , err := txn .First (tblProjects , "owner_name" , owner , name )
228
+ existing , err := txn .First (tblProjects , "owner_name" , owner . String () , name )
229
229
if err != nil {
230
230
return nil , fmt .Errorf ("find project by owner and name: %w" , err )
231
231
}
@@ -304,15 +304,15 @@ func (d *DB) FindNextNCyclingProjectInfos(
304
304
// ListProjectInfos returns all project infos owned by owner.
305
305
func (d * DB ) ListProjectInfos (
306
306
_ context.Context ,
307
- owner string ,
307
+ owner types. ID ,
308
308
) ([]* database.ProjectInfo , error ) {
309
309
txn := d .db .Txn (false )
310
310
defer txn .Abort ()
311
311
312
312
iter , err := txn .LowerBound (
313
313
tblProjects ,
314
314
"owner_name" ,
315
- owner ,
315
+ owner . String () ,
316
316
"" ,
317
317
)
318
318
if err != nil {
@@ -335,7 +335,7 @@ func (d *DB) ListProjectInfos(
335
335
// UpdateProjectInfo updates the given project.
336
336
func (d * DB ) UpdateProjectInfo (
337
337
_ context.Context ,
338
- owner string ,
338
+ owner types. ID ,
339
339
id types.ID ,
340
340
fields * types.UpdatableProjectFields ,
341
341
) (* database.ProjectInfo , error ) {
@@ -356,7 +356,7 @@ func (d *DB) UpdateProjectInfo(
356
356
}
357
357
358
358
if fields .Name != nil {
359
- existing , err := txn .First (tblProjects , "owner_name" , owner , * fields .Name )
359
+ existing , err := txn .First (tblProjects , "owner_name" , owner . String () , * fields .Name )
360
360
if err != nil {
361
361
return nil , fmt .Errorf ("find project by owner and name: %w" , err )
362
362
}
@@ -402,8 +402,24 @@ func (d *DB) CreateUserInfo(
402
402
return info , nil
403
403
}
404
404
405
- // FindUserInfo finds a user by the given username.
406
- func (d * DB ) FindUserInfo (_ context.Context , username string ) (* database.UserInfo , error ) {
405
+ // FindUserInfoByID finds a user by the given ID.
406
+ func (d * DB ) FindUserInfoByID (_ context.Context , clientID types.ID ) (* database.UserInfo , error ) {
407
+ txn := d .db .Txn (false )
408
+ defer txn .Abort ()
409
+
410
+ raw , err := txn .First (tblUsers , "id" , clientID .String ())
411
+ if err != nil {
412
+ return nil , fmt .Errorf ("find user by id: %w" , err )
413
+ }
414
+ if raw == nil {
415
+ return nil , fmt .Errorf ("%s: %w" , clientID , database .ErrUserNotFound )
416
+ }
417
+
418
+ return raw .(* database.UserInfo ).DeepCopy (), nil
419
+ }
420
+
421
+ // FindUserInfoByName finds a user by the given username.
422
+ func (d * DB ) FindUserInfoByName (_ context.Context , username string ) (* database.UserInfo , error ) {
407
423
txn := d .db .Txn (false )
408
424
defer txn .Abort ()
409
425
0 commit comments