From 7b0f62330c7eb555ec3b63944dad55078740b012 Mon Sep 17 00:00:00 2001 From: Eric Leijonmarck Date: Wed, 12 Jun 2024 16:35:22 +0200 Subject: [PATCH] [v10.4.x] Auth: Removal of conflicting users check upon creation (#89104) fix for v10.4.0, use caseinsensitive before checking userConflict --- pkg/services/user/userimpl/store.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/pkg/services/user/userimpl/store.go b/pkg/services/user/userimpl/store.go index 2c57c290495..c8bf549f744 100644 --- a/pkg/services/user/userimpl/store.go +++ b/pkg/services/user/userimpl/store.go @@ -291,7 +291,6 @@ func (ss *sqlStore) LoginConflict(ctx context.Context, login, email string, case } func (ss *sqlStore) loginConflict(ctx context.Context, sess *db.Session, login, email string, caseInsensitive bool) error { - users := make([]user.User, 0) where := "email=? OR login=?" if caseInsensitive { where = "LOWER(email)=LOWER(?) OR LOWER(login)=LOWER(?)" @@ -306,13 +305,11 @@ func (ss *sqlStore) loginConflict(ctx context.Context, sess *db.Session, login, if exists { return user.ErrUserAlreadyExists } - if err := sess.Where("LOWER(email)=LOWER(?) OR LOWER(login)=LOWER(?)", - email, login).Find(&users); err != nil { - return err - } - - if len(users) > 1 { - return &user.ErrCaseInsensitiveLoginConflict{Users: users} + if caseInsensitive { + err := ss.userCaseInsensitiveLoginConflict(ctx, sess, login, email) + if err != nil { + return err + } } return nil }