From 9a465e62f8450f8d82d47a3bc142ddc6acaf11a4 Mon Sep 17 00:00:00 2001 From: "Lucian I. Last" Date: Fri, 15 Mar 2024 13:43:39 +0100 Subject: [PATCH] Attempt to fix production bug --- server/internal/controllers/users.go | 4 ++++ server/internal/models/user.go | 6 +++--- .../integration_tests/user_get_all_of_chain_e2e_test.go | 2 +- server/pkg/noderoute/noderoute.go | 1 - server/pkg/noderoute/noderoute_test.go | 6 ++++++ 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/server/internal/controllers/users.go b/server/internal/controllers/users.go index 45ece0336..3fd11a4ec 100644 --- a/server/internal/controllers/users.go +++ b/server/internal/controllers/users.go @@ -723,6 +723,10 @@ func omitUserData(db *gorm.DB, chain *models.Chain, users []models.User, authUse checkNode := func(currentNode *noderoute.NodeWithInformation[userData], routePrivacy int) int { d := currentNode.Data + _, err := lo.Nth(users, d.userIndex) + if err != nil { + return 0 + } user := &users[d.userIndex] hasBulkyItem := d.hasBulkyItem isChainAdmin := d.isChainAdmin diff --git a/server/internal/models/user.go b/server/internal/models/user.go index f662c81e2..21721398e 100644 --- a/server/internal/models/user.go +++ b/server/internal/models/user.go @@ -215,8 +215,8 @@ SELECT users.i18n AS i18n, chains.name AS chain_name FROM user_chains AS uc -LEFT JOIN users ON uc.user_id = users.id -LEFT JOIN chains ON uc.chain_id = chains.id +JOIN users ON uc.user_id = users.id +JOIN chains ON uc.chain_id = chains.id WHERE uc.chain_id IN ? AND uc.is_chain_admin = TRUE AND users.is_email_verified = TRUE @@ -233,7 +233,7 @@ func UserGetAllUsersByChain(db *gorm.DB, chainID uint) ([]User, error) { err := db.Raw(` SELECT users.* FROM users -LEFT JOIN user_chains ON user_chains.user_id = users.id +JOIN user_chains ON user_chains.user_id = users.id WHERE user_chains.chain_id = ? AND users.is_email_verified = TRUE `, chainID).Scan(&results).Error diff --git a/server/internal/tests/integration_tests/user_get_all_of_chain_e2e_test.go b/server/internal/tests/integration_tests/user_get_all_of_chain_e2e_test.go index 9c62a32e8..812c646fc 100644 --- a/server/internal/tests/integration_tests/user_get_all_of_chain_e2e_test.go +++ b/server/internal/tests/integration_tests/user_get_all_of_chain_e2e_test.go @@ -318,7 +318,7 @@ func TestUserGetAllOfChainRoutePrivacyMutiple0(t *testing.T) { return actualUser.UID == expectedUser.UID }) if !ok { - assert.Truef(t, ok, "expected user %s not in %s", strings.Join(actualUserUIDs, ", ")) + assert.Failf(t, "expected user %s not in %s", strings.Join(actualUserUIDs, ", ")) } } } diff --git a/server/pkg/noderoute/noderoute.go b/server/pkg/noderoute/noderoute.go index ebc9c3308..90367496d 100644 --- a/server/pkg/noderoute/noderoute.go +++ b/server/pkg/noderoute/noderoute.go @@ -28,7 +28,6 @@ LOOP_NEW_KEYS: } } nk.Keys = append(nk.Keys, newKey) - } } diff --git a/server/pkg/noderoute/noderoute_test.go b/server/pkg/noderoute/noderoute_test.go index 43fcd9e49..f98f62d25 100644 --- a/server/pkg/noderoute/noderoute_test.go +++ b/server/pkg/noderoute/noderoute_test.go @@ -69,4 +69,10 @@ func TestIndexCircular(t *testing.T) { v = get(arr, -1) assert.Equal(t, "c", v) + + v = get(arr, 1) + assert.Equal(t, "b", v) + + v = get(arr, 0) + assert.Equal(t, "a", v) }