moved a lot

This commit is contained in:
vfs committed 2026-05-09 14:40:14 +02:00
1 parent 5772a7d855
commit 136a1c34b3
98 files changed
+6950 -2183

No files matched your search

@@ -1,5 +1,5 @@
DROP TABLE IF EXISTS user_identities;
DROP TABLE IF EXISTS auth_provider;
DROP TABLE IF EXISTS auth_providers;
DROP TABLE IF EXISTS users;
@@ -1,9 +1,7 @@
DROP INDEX IF EXISTS idx_votes_option_id;
DROP INDEX IF EXISTS idx_vote_tokens_issue_id;
DROP INDEX IF EXISTS idx_options_issue_id;
DROP TABLE IF EXISTS votes;
DROP TABLE IF EXISTS blind_sign_requests;
DROP TABLE IF EXISTS vote_tokens;
DROP TABLE IF EXISTS blind_signs;
DROP TABLE IF EXISTS options;
DROP TABLE IF EXISTS issues;
@@ -19,16 +19,7 @@ CREATE TABLE IF NOT EXISTS options (
version INT NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS vote_tokens (
id BIGSERIAL PRIMARY KEY,
issue_id BIGINT NOT NULL REFERENCES issues(id) ON DELETE CASCADE,
token UUID NOT NULL UNIQUE DEFAULT gen_random_uuid(),
used BOOLEAN NOT NULL DEFAULT FALSE,
created TIMESTAMPTZ NOT NULL DEFAULT now(),
version INT NOT NULL DEFAULT 1
);
CREATE TABLE IF NOT EXISTS blind_sign_requests (
CREATE TABLE IF NOT EXISTS blind_signs (
user_id BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
issue_id BIGINT NOT NULL REFERENCES issues(id) ON DELETE CASCADE,
created TIMESTAMPTZ NOT NULL DEFAULT now(),
@@ -36,13 +27,12 @@ CREATE TABLE IF NOT EXISTS blind_sign_requests (
);
CREATE TABLE IF NOT EXISTS votes (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
token UUID NOT NULL UNIQUE REFERENCES vote_tokens(token) ON DELETE CASCADE,
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
option_id BIGINT NOT NULL REFERENCES options(id) ON DELETE CASCADE,
created TIMESTAMPTZ NOT NULL DEFAULT now(),
version INT NOT NULL DEFAULT 1
nonce BYTEA NOT NULL,
signature BYTEA NOT NULL UNIQUE,
created TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_votes_option_id ON votes(option_id);
CREATE INDEX idx_vote_tokens_issue_id ON vote_tokens(issue_id);
CREATE INDEX idx_options_issue_id ON options(issue_id);
+1 -2
View File
@@ -9,6 +9,5 @@ CREATE TABLE IF NOT EXISTS users_permissions (
PRIMARY KEY (user_id, permission_id)
);
-- Add the two permissions to the table.
INSERT INTO permissions (code)
VALUES ('issues:read'), ('issues:write');
VALUES ('issues:read'), ('issues:write'), ('issues:vote'), ('users:read');
+9
View File
@@ -0,0 +1,9 @@
CREATE TABLE IF NOT EXISTS users_permissions (
user_id bigint NOT NULL REFERENCES users ON DELETE CASCADE,
permission_id bigint NOT NULL REFERENCES permissions ON DELETE CASCADE,
PRIMARY KEY (user_id, permission_id)
);
DROP TABLE users_roles;
DROP TABLE roles_permissions;
DROP TABLE roles;
+26
View File
@@ -0,0 +1,26 @@
CREATE TABLE roles (
id bigserial PRIMARY KEY,
code text UNIQUE NOT NULL
);
CREATE TABLE roles_permissions (
role_id bigint NOT NULL REFERENCES roles ON DELETE CASCADE,
permission_id bigint NOT NULL REFERENCES permissions ON DELETE CASCADE,
PRIMARY KEY (role_id, permission_id)
);
CREATE TABLE users_roles (
user_id bigint NOT NULL REFERENCES users ON DELETE CASCADE,
role_id bigint NOT NULL REFERENCES roles ON DELETE CASCADE,
PRIMARY KEY (user_id, role_id)
);
INSERT INTO roles (code) VALUES ('viewer'), ('contributor'), ('admin');
INSERT INTO roles_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE (r.code = 'viewer' AND p.code = 'issues:read')
OR (r.code = 'contributor' AND p.code IN ('issues:read', 'issues:write', 'issues:vote'))
OR (r.code = 'admin' AND p.code IN ('issues:read', 'issues:write', 'issues:vote', 'users:read'));
DROP TABLE users_permissions;
@@ -0,0 +1 @@
DELETE FROM roles WHERE code IN ('member_of_parliament', 'party_leadership');
@@ -0,0 +1,5 @@
INSERT INTO roles (code) VALUES ('member_of_parliament'), ('party_leadership');
INSERT INTO roles_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.code IN ('member_of_parliament', 'party_leadership');