mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-04-29 00:30:09 -05:00
32 lines
992 B
Plaintext
32 lines
992 B
Plaintext
CREATE TABLE IF NOT EXISTS resources(
|
|
id TEXT NOT NULL PRIMARY KEY,
|
|
parent TEXT REFERENCES resources (id),
|
|
name TEXT NOT NULL,
|
|
dir BOOLEAN NOT NULL CHECK ("dir" IN (0, 1)),
|
|
created DATETIME,
|
|
modified DATETIME,
|
|
deleted DATETIME,
|
|
content_length INTEGER NOT NULL DEFAULT 0,
|
|
content_sha256 TEXT NOT NULL DEFAULT '',
|
|
content_type TEXT NOT NULL DEFAULT '',
|
|
permissions TEXT,
|
|
grants TEXT,
|
|
publinks TEXT,
|
|
last_refresh DATETIME
|
|
);
|
|
|
|
parents: WITH RECURSIVE parents(id, parent, name, permissions) AS (
|
|
SELECT id, parent, name, permissions
|
|
FROM resources
|
|
WHERE id = :id
|
|
UNION ALL
|
|
SELECT r.id, r.parent, r.name, r.permissions
|
|
FROM resources r
|
|
JOIN parents p
|
|
ON r.id = p.parent
|
|
) SELECT id, name, permissions from parents;
|
|
|
|
permissions: SELECT r.name, r.permissions, r.grants, p.permissions as inherited_permissions
|
|
FROM resources r
|
|
JOIN resources p ON r.parent = p.id
|
|
WhERE r.id = :id; |