From bbc8030756f6b0c8cd81d6ea422c3d8fc7a8adff Mon Sep 17 00:00:00 2001 From: Abhishek Shroff Date: Mon, 12 May 2025 22:44:59 +0530 Subject: [PATCH] [server] Fix queries --- server/internal/core/fs/search.go | 8 ++++---- server/internal/core/fs/shared.go | 8 ++++---- server/internal/core/fs/sql_common.go | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/server/internal/core/fs/search.go b/server/internal/core/fs/search.go index 68829977..16cb276e 100644 --- a/server/internal/core/fs/search.go +++ b/server/internal/core/fs/search.go @@ -9,14 +9,14 @@ import ( func (f filesystem) Search(query string, includeDeleted bool) ([]Resource, error) { qb := strings.Builder{} qb.WriteString(fullResourceQuery) - qb.WriteString("WHERE f_prepare_search(name) %> @query::TEXT") + qb.WriteString("WHERE f_prepare_search(r.name) %> @query::TEXT") if !includeDeleted { - qb.WriteString("\nAND deleted IS NULL") + qb.WriteString("\nAND r.deleted IS NULL") } if !f.fullAccess { - qb.WriteString("\nAND permissions[@username::TEXT]::integer <> 0") + qb.WriteString("\nAND r.permissions[@username::TEXT]::INTEGER <> 0") } - qb.WriteString("\nORDER BY word_similarity(f_prepare_search(name), @query::TEXT) DESC ") + qb.WriteString("\nORDER BY word_similarity(f_prepare_search(r.name), @query::TEXT) DESC") args := pgx.NamedArgs{ "query": strings.ToLower(query), diff --git a/server/internal/core/fs/shared.go b/server/internal/core/fs/shared.go index 8465b892..eb08adfa 100644 --- a/server/internal/core/fs/shared.go +++ b/server/internal/core/fs/shared.go @@ -6,11 +6,11 @@ import ( ) func (f filesystem) SharedResources(excluded pgtype.UUID) ([]Resource, error) { - const q = fullResourceQuery + `WHERE grants ? @username::TEXT + const q = fullResourceQuery + `WHERE r.grants ? @username::TEXT AND r.id != @excluded::UUID -AND deleted IS NULL -AND (grants -> @username::TEXT -> 'p')::INTEGER <> 0 -ORDER BY grants -> @username::TEXT -> 't' DESC` +AND r.deleted IS NULL +AND (r.grants -> @username::TEXT -> 'p')::INTEGER <> 0 +ORDER BY r.grants -> @username::TEXT -> 't' DESC` args := pgx.NamedArgs{ "username": f.username, "excluded": excluded, diff --git a/server/internal/core/fs/sql_common.go b/server/internal/core/fs/sql_common.go index 4f1f1522..2c5f0d29 100644 --- a/server/internal/core/fs/sql_common.go +++ b/server/internal/core/fs/sql_common.go @@ -21,7 +21,7 @@ const publinkFieldsQuery = "COALESCE(JSONB_AGG(JSONB_BUILD_OBJECT(" + const fullResourceQuery = `SELECT r.*, (SELECT ` + publinkFieldsQuery + ` FROM publinks l WHERE l.root = r.id) AS links, CASE WHEN COALESCE(p.permissions[@username::TEXT]::INTEGER, 0) <> 0 THEN p.id ELSE NULL END AS visible_parent, -COALESCE(p.permissions, '{}'::JSONB} AS inherited_permissions +COALESCE(p.permissions, '{}'::JSONB) AS inherited_permissions FROM resources r JOIN resources p ON p.id = r.parent `