Create the roles and privileges required for MVP

This commit is contained in:
Simon Goller 2024-04-27 15:43:59 +02:00
parent 3b20d12ba1
commit ab260120f2

View file

@ -9,6 +9,11 @@ CREATE TRIGGER user_update_timestamp
BEGIN
UPDATE user SET update_timestamp = DATETIME('now') WHERE rowid = old.rowid;
END;
CREATE TRIGGER user_insert_timestamp
AFTER INSERT ON user
BEGIN
UPDATE user SET update_timestamp = DATETIME('now') WHERE rowid = new.rowid;
END;
CREATE TABLE role (
name TEXT NOT NULL PRIMARY KEY,
@ -20,6 +25,11 @@ CREATE TRIGGER role_update_timestamp
BEGIN
UPDATE role SET update_timestamp = DATETIME('now') WHERE rowid = old.rowid;
END;
CREATE TRIGGER role_insert_timestamp
AFTER INSERT ON role
BEGIN
UPDATE role SET update_timestamp = DATETIME('now') WHERE rowid = new.rowid;
END;
CREATE TABLE privilege (
name TEXT NOT NULL PRIMARY KEY,
@ -31,6 +41,11 @@ CREATE TRIGGER privilege_update_timestamp
BEGIN
UPDATE privilege SET update_timestamp = DATETIME('now') WHERE rowid = old.rowid;
END;
CREATE TRIGGER privilege_insert_timestamp
AFTER INSERT ON privilege
BEGIN
UPDATE privilege SET update_timestamp = DATETIME('now') WHERE rowid = new.rowid;
END;
CREATE TABLE user_role (
user_name TEXT NOT NULL,
@ -46,6 +61,11 @@ CREATE TRIGGER user_role_update_timestamp
BEGIN
UPDATE user_role SET update_timestamp = DATETIME('now') WHERE rowid = old.rowid;
END;
CREATE TRIGGER user_role_insert_timestamp
AFTER INSERT ON user_role
BEGIN
UPDATE user_role SET update_timestamp = DATETIME('now') WHERE rowid = new.rowid;
END;
CREATE TABLE role_privilege (
role_name TEXT NOT NULL,
@ -61,3 +81,32 @@ CREATE TRIGGER role_privilege_update_timestamp
BEGIN
UPDATE role_privilege SET update_timestamp = DATETIME('now') WHERE rowid = old.rowid;
END;
CREATE TRIGGER role_privilege_insert_timestamp
AFTER INSERT ON role_privilege
BEGIN
UPDATE role_privilege SET update_timestamp = DATETIME('now') WHERE rowid = new.rowid;
END;
CREATE VIEW V_UUID_V4 as
SELECT
lower(
hex(randomblob(4)) || '-' || hex(randomblob(2)) || '-' || '4' ||
substr(hex( randomblob(2)), 2) || '-' ||
substr('AB89', 1 + (abs(random()) % 4) , 1) ||
substr(hex(randomblob(2)), 2) || '-' ||
hex(randomblob(6))
) UUID;
INSERT INTO role (name, update_process) VALUES ('admin', 'initial');
INSERT INTO role (name, update_process) VALUES ('sales', 'initial');
INSERT INTO role (name, update_process) VALUES ('hr', 'initial');
INSERT INTO privilege (name, update_process) VALUES ('admin', 'initial');
INSERT INTO privilege (name, update_process) VALUES ('sales', 'initial');
INSERT INTO privilege (name, update_process) VALUES ('hr', 'initial');
INSERT INTO role_privilege (role_name, privilege_name, update_process) VALUES ('sales', 'sales', 'initial');
INSERT INTO role_privilege (role_name, privilege_name, update_process) VALUES ('hr', 'hr', 'initial');
INSERT INTO role_privilege (role_name, privilege_name, update_process) VALUES ('admin', 'admin', 'initial');
INSERT INTO role_privilege (role_name, privilege_name, update_process) VALUES ('admin', 'sales', 'initial');
INSERT INTO role_privilege (role_name, privilege_name, update_process) VALUES ('admin', 'hr', 'initial');