Files
Kazier/backend/internal/db/queries/rebac_relations.sql
T
2026-07-28 18:12:56 +02:00

37 lines
961 B
SQL

-- name: CreateRebacRelation :one
INSERT INTO rebac_relations (resource_id, subject_user_id, role, granted_by)
VALUES ($1, $2, $3, $4)
RETURNING *;
-- name: GetRebacRelation :one
SELECT * FROM rebac_relations
WHERE resource_id = $1 AND subject_user_id = $2
LIMIT 1;
-- name: ListRebacRelationsByResource :many
SELECT * FROM rebac_relations
WHERE resource_id = $1
ORDER BY created_at ASC;
-- name: ListRebacRelationsBySubject :many
SELECT * FROM rebac_relations
WHERE subject_user_id = $1
ORDER BY created_at ASC;
-- name: DeleteRebacRelation :exec
DELETE FROM rebac_relations
WHERE resource_id = $1 AND subject_user_id = $2;
-- name: DeleteRebacRelationsByResource :exec
DELETE FROM rebac_relations
WHERE resource_id = $1;
-- name: HasRebacRelation :one
SELECT EXISTS(
SELECT 1 FROM rebac_relations
WHERE resource_id = $1 AND subject_user_id = $2 AND role = $3
);
-- name: ResolveEffectiveRole :one
SELECT resolve_effective_role($1, $2) AS role;