moved a lot
This commit is contained in:
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);
|
||||
@@ -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');
|
||||
@@ -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;
|
||||
@@ -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');
|
||||
Reference in new issue
Block a user