mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-04 18:50:42 -06:00
[server] Fix queries
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user