Started work on permissions

This commit is contained in:
2024-07-27 21:48:26 +03:00
parent 3ed30f0d9b
commit ffbb2a8bbc
8 changed files with 125 additions and 28 deletions

View File

@ -0,0 +1,8 @@
SELECT
username,
permission_type as "permission_type: PermissionRaw"
FROM
permissions
INNER JOIN users ON permissions.user_id = users.user_id
WHERE
folder_id = $1

View File

@ -0,0 +1,15 @@
SELECT
permission_type as "permission_type: PermissionRaw"
FROM
permissions
WHERE
folder_id = $1
AND user_id = $2
UNION
SELECT
'manage' as "permission_type: PermissionRaw"
FROM
folders
WHERE
folder_id = $1
AND owner_id = $2

24
sql/insert_permission.sql Normal file
View File

@ -0,0 +1,24 @@
WITH RECURSIVE folder_hierarchy AS (
-- Start with the given directory
SELECT
folder_id
FROM
folders
WHERE
folder_id = $1
UNION ALL
-- Recursively find all subdirectories
SELECT
f.folder_id
FROM
folders f
INNER JOIN
folder_hierarchy fh ON f.parent_folder_id = fh.folder_id
)
INSERT INTO permissions(user_id, folder_id, permission_type)
SELECT $2::integer as user_id, fh.folder_id::UUID as folder_id, $3
FROM folder_hierarchy fh
ON CONFLICT (user_id, folder_id) DO UPDATE
SET permission_type = $3