Skip to content

Commit 1e3121b

Browse files
committed
fix: do not use user_link for deleted accounts
1 parent 4126f9e commit 1e3121b

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

coderd/database/dbmem/dbmem.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3787,6 +3787,10 @@ func (q *FakeQuerier) GetUserLinkByLinkedID(_ context.Context, id string) (datab
37873787
defer q.mutex.RUnlock()
37883788

37893789
for _, link := range q.userLinks {
3790+
user, err := q.getUserByIDNoLock(link.UserID)
3791+
if err == nil && user.Deleted {
3792+
continue
3793+
}
37903794
if link.LinkedID == id {
37913795
return link, nil
37923796
}

coderd/database/queries.sql.go

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/user_links.sql

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
-- name: GetUserLinkByLinkedID :one
22
SELECT
3-
*
3+
user_links.*
44
FROM
55
user_links
6+
INNER JOIN
7+
users ON user_links.user_id = users.id
68
WHERE
7-
linked_id = $1;
9+
linked_id = $1
10+
AND
11+
deleted = false;
812

913
-- name: GetUserLinkByUserIDLoginType :one
1014
SELECT

coderd/userauth_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,8 @@ func TestUserOAuth2Github(t *testing.T) {
661661

662662
client, _ = fake.Login(t, client, jwt.MapClaims{})
663663
deleted, err := client.User(ctx, "me")
664+
require.NoError(t, err)
665+
664666
err = owner.DeleteUser(ctx, deleted.ID)
665667
require.NoError(t, err)
666668

0 commit comments

Comments
 (0)