From e6f2cbf36e28486550cf0372de6fb508a39b8774 Mon Sep 17 00:00:00 2001 From: richjohnrambo Date: Fri, 4 Sep 2026 16:34:11 +0800 Subject: [PATCH] Fix user lookup on unscoped tenant database --- server/db/mysql/tenant_adapter.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/db/mysql/tenant_adapter.go b/server/db/mysql/tenant_adapter.go index 80b054f..d1bb98d 100644 --- a/server/db/mysql/tenant_adapter.go +++ b/server/db/mysql/tenant_adapter.go @@ -333,11 +333,11 @@ func (a *adapter) TenantUserGet(id t.TenantID, uid t.Uid) (*t.User, error) { defer cancel() } var row profileUserRow - err = a.db.GetContext(ctx, &row, `SELECT u.tenant_id,u.id,u.username,u.createdat,u.updatedat,u.state,u.stateat,u.access,u.lastseen,u.useragent, + err = a.db.GetContext(ctx, &row, `SELECT ? AS tenant_id,u.id,u.username,u.createdat,u.updatedat,u.state,u.stateat,u.access,u.lastseen,u.useragent, COALESCE(u.phone,'') AS phone,u.public,u.trusted, p.nickname AS profile_nickname,p.avatar_file_id AS profile_avatar_file_id,p.updated_at AS profile_updated_at - FROM im_users AS u LEFT JOIN im_user_profiles AS p ON p.tenant_id=u.tenant_id AND p.user_id=u.id - WHERE u.tenant_id=? AND u.id=? AND u.state!=?`, + FROM im_users AS u LEFT JOIN im_user_profiles AS p ON p.user_id=u.id + WHERE u.id=? AND u.state!=?`, id, decodeUID(uid), t.StateDeleted) if err == sql.ErrNoRows { return nil, nil @@ -9312,12 +9312,13 @@ func (a *adapter) TenantUserSearch(id t.TenantID, viewer t.Uid, queryText, searc WHERE privacy_friend.user_id=? AND privacy_friend.peer_id=u.id AND privacy_friend.status=? ) OR COALESCE(JSON_UNQUOTE(JSON_EXTRACT(privacy.add_me_methods, ?)), 'true')='true')`) args = append(args, decodeUID(viewer), t.RelationshipFriend, "$."+addMethod) + args = append([]any{id}, args...) args = append(args, limit+1) ctx, cancel := a.getContext() if cancel != nil { defer cancel() } - rows, err := a.db.QueryxContext(ctx, `SELECT DISTINCT u.tenant_id,u.id,u.username,u.createdat,u.updatedat,u.state,u.stateat,u.access,u.lastseen,u.useragent, + rows, err := a.db.QueryxContext(ctx, `SELECT DISTINCT ? AS tenant_id,u.id,u.username,u.createdat,u.updatedat,u.state,u.stateat,u.access,u.lastseen,u.useragent, COALESCE(u.phone,'') AS phone,u.public,u.trusted, profile.nickname AS profile_nickname,profile.avatar_file_id AS profile_avatar_file_id,profile.updated_at AS profile_updated_at FROM im_users AS u `+strings.Join(joins, " ")+`