fix tenant-scoped user search

This commit is contained in:
richjohnrambo
2026-09-23 13:45:39 +08:00
parent 6bbe955e75
commit 40aba2a3f5
2 changed files with 73 additions and 0 deletions
+10
View File
@@ -7201,6 +7201,10 @@ func (a *adapter) TenantUserSearch(id t.TenantID, viewer t.Uid, queryText, searc
}
where := []string{"u.id<>?", "u.state=?"}
args := []any{decodeUID(viewer), t.StateOK}
if !a.tenantScopedDB {
where = append([]string{"u.tenant_id=?"}, where...)
args = append([]any{id}, args...)
}
if cursor != "" {
parsed, err := strconv.ParseInt(cursor, 10, 64)
if err != nil || parsed <= 0 {
@@ -7213,6 +7217,12 @@ func (a *adapter) TenantUserSearch(id t.TenantID, viewer t.Uid, queryText, searc
"LEFT JOIN im_user_privacy_settings AS privacy ON privacy.user_id=u.id",
"LEFT JOIN im_user_profiles AS profile ON profile.user_id=u.id",
}
if !a.tenantScopedDB {
joins = []string{
"LEFT JOIN im_user_privacy_settings AS privacy ON privacy.tenant_id=u.tenant_id AND privacy.user_id=u.id",
"LEFT JOIN im_user_profiles AS profile ON profile.tenant_id=u.tenant_id AND profile.user_id=u.id",
}
}
addMethod := "account"
switch searchType {
case "", "account":