From 4133d72eb49507b419e4fb75c3f2bffef8a045b0 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Fri, 29 Nov 2024 19:57:06 -0500 Subject: [PATCH] Begin fleshing out user permissions --- db/newsgroup.sql | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/db/newsgroup.sql b/db/newsgroup.sql index 0c4c85c..96faed3 100644 --- a/db/newsgroup.sql +++ b/db/newsgroup.sql @@ -1,14 +1,5 @@ begin transaction; -create server_user ( - id INTEGER PRIMARY KEY NOT NULL, - active BOOLEAN NOT NULL DEFAULT TRUE, - username TEXT NOT NULL, - password TEXT, - fullname TEXT, - mail TEXT NOT NULL -); - create table newsgroup ( id INTEGER PRIMARY KEY NOT NULL, created_on DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -38,4 +29,32 @@ create index newsgroup_message_newsgroup_date_idx on newsgroup_message ( newsgroup_id, created_on ); +create table server_permission ( + id INTEGER PRIMARY KEY NOT NULL, + name TEXT NOT NULL +); + +insert into server_permission values + (1, 'READ'), + (2, 'POST'), + (3, 'KILL'); + +create table server_user ( + id INTEGER PRIMARY KEY NOT NULL, + active BOOLEAN NOT NULL DEFAULT TRUE, + username TEXT NOT NULL, + password TEXT, + fullname TEXT, + mail TEXT NOT NULL +); + +create table server_user_permission ( + permission_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + + UNIQUE(permission_id, user_id), + FOREIGN KEY(permission_id) REFERENCES server_permission(id), + FOREIGN KEY(user_id) REFERENCES server_user(id) +); + commit;