diff options
author | Runxi Yu <me@runxiyu.org> | 2025-02-16 01:27:00 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-02-16 01:27:00 +0800 |
commit | 282db4ed346bb7bfda7f7c8165e42386ec3b74a9 (patch) | |
tree | e36a3e13317d57942165d810d860898c1f1fe03a | |
parent | ssh_*: Pass pubkey to SSH handlers (diff) | |
download | forge-282db4ed346bb7bfda7f7c8165e42386ec3b74a9.tar.gz forge-282db4ed346bb7bfda7f7c8165e42386ec3b74a9.tar.zst forge-282db4ed346bb7bfda7f7c8165e42386ec3b74a9.zip |
schema.sql: Fix public keys and add basic group ACL
-rw-r--r-- | schema.sql | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -36,7 +36,7 @@ CREATE TABLE mailing_lists ( description TEXT ); -CREATE TABLE emails ( +CREATE TABLE mailing_list_emails ( id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, list_id INTEGER NOT NULL REFERENCES mailing_lists(id) ON DELETE CASCADE, title TEXT NOT NULL, @@ -51,10 +51,15 @@ CREATE TABLE users ( password TEXT ); +CREATE TABLE ssh_public_keys ( + key_string TEXT PRIMARY KEY NOT NULL, + user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE +); + CREATE TABLE sessions ( user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, - session_id TEXT NOT NULL, - PRIMARY KEY (user_id, session_id) + session_id TEXT PRIMARY KEY NOT NULL, + UNIQUE(user_id, session_id) ); CREATE TABLE merge_requests ( @@ -68,9 +73,8 @@ CREATE TABLE merge_requests ( mailing_list_id INT UNIQUE REFERENCES mailing_lists(id) ON DELETE CASCADE ); -CREATE TABLE ssh_public_keys ( - id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, +CREATE TABLE user_group_roles ( + group_id INTEGER NOT NULL REFERENCES groups(id) ON DELETE CASCADE, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, - content TEXT NOT NULL, - UNIQUE (user_id, content) + PRIMARY KEY(user_id, group_id) ); |