27 lines
992 B
SQL
27 lines
992 B
SQL
-- Panel users and domain-admin assignments. Migrates the single admin row into
|
|
-- a global user; drops the admin table.
|
|
|
|
CREATE TABLE users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
username TEXT NOT NULL UNIQUE,
|
|
password_hash TEXT NOT NULL,
|
|
role TEXT NOT NULL CHECK (role IN ('global', 'domain_admin')),
|
|
dmarc_report_email TEXT NOT NULL DEFAULT '',
|
|
created_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE user_domains (
|
|
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
domain_id INTEGER NOT NULL REFERENCES domains(id) ON DELETE CASCADE,
|
|
PRIMARY KEY (user_id, domain_id)
|
|
);
|
|
|
|
INSERT INTO users (username, password_hash, role, dmarc_report_email, created_at)
|
|
SELECT username, password_hash, 'global', dmarc_report_email, created_at
|
|
FROM admin WHERE id = 1;
|
|
|
|
INSERT OR REPLACE INTO settings (key, value)
|
|
SELECT 'dmarc_report_email', dmarc_report_email FROM admin WHERE id = 1;
|
|
|
|
DROP TABLE admin;
|