From a749857c98bb1290e7e99cf98273514864cd6c61 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Fri, 1 Mar 2024 07:47:06 +0100 Subject: [PATCH] User_roles table constraints --- .../internal/database/migrations/0050_user_roles.sql | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/internal/database/migrations/0050_user_roles.sql b/backend/internal/database/migrations/0050_user_roles.sql index 32e03dc..56e597b 100644 --- a/backend/internal/database/migrations/0050_user_roles.sql +++ b/backend/internal/database/migrations/0050_user_roles.sql @@ -4,4 +4,13 @@ CREATE TABLE IF NOT EXISTS user_roles ( role STRING NOT NULL, -- 'admin' or 'member' FOREIGN KEY (user_id) REFERENCES users (id) FOREIGN KEY (project_id) REFERENCES projects (id) -); \ No newline at end of file + PRIMARY KEY (user_id, project_id) +); + +-- Make sure that the role is either 'admin' or 'member' +CREATE TRIGGER IF NOT EXISTS user_role_admin_or_member + BEFORE INSERT ON user_roles + FOR EACH ROW + BEGIN + SELECT RAISE(ABORT, 'Invalid role') WHERE NEW.role NOT IN ('admin', 'member'); + END; \ No newline at end of file