fix oidc module db schema

This commit is contained in:
2025-10-01 18:07:34 +02:00
parent 14256ac816
commit dd93ea5cca
2 changed files with 90 additions and 65 deletions

View File

@@ -0,0 +1,90 @@
DROP TABLE IF EXISTS tbl_group_membership;
DROP TABLE IF EXISTS tbl_group;
DROP TABLE IF EXISTS tbl_user;
DROP TABLE IF EXISTS tbl_provider;
DROP TABLE IF EXISTS tbl_schema;
CREATE TABLE tbl_provider (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
url varchar(255) NOT NULL,
secret varchar(255) NOT NULL,
appname varchar(255) NOT NULL,
logo varchar(255) NOT NULL,
syncgroups LONGTEXT DEFAULT NULL,
defaultgroup TEXT DEFAULT NULL,
required_groups TEXT DEFAULT NULL,
nooidcgroups enum ('y', 'n') DEFAULT 'n' NOT NULL,
usernameblacklist TEXT DEFAULT NULL,
buttoncolor varchar(255) NOT NULL,
textcolor varchar(255) NOT NULL,
caption varchar(255) NOT NULL,
enforce_scheme_https enum ('y', 'n') DEFAULT 'n' NOT NULL,
enabled enum ('y', 'n') DEFAULT 'n' NOT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
UNIQUE uq_oidc_provider_name (name) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_user (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
email varchar(255) DEFAULT NULL,
provider_id int(10) unsigned NOT NULL,
mapped_local_user varchar(255) DEFAULT NULL,
mapped_backend varchar(255) DEFAULT NULL,
active int(10) unsigned NOT NULL,
lastlogin bigint unsigned DEFAULT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
UNIQUE uq_oidc_user_name (name) USING BTREE,
FOREIGN KEY (provider_id)
REFERENCES tbl_provider (id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_group (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
provider_id int(10) unsigned NOT NULL,
parent int(10) DEFAULT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
UNIQUE uq_oidc_group_name (name) USING BTREE,
FOREIGN KEY (provider_id)
REFERENCES tbl_provider (id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_group_membership (
id int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
group_id int(10) unsigned NOT NULL,
provider_id int(10) unsigned NOT NULL,
username varchar(255) NOT NULL,
ctime bigint unsigned DEFAULT NULL,
mtime bigint unsigned DEFAULT NULL,
FOREIGN KEY (provider_id)
REFERENCES tbl_provider (id)
ON DELETE CASCADE,
FOREIGN KEY (group_id)
REFERENCES tbl_group (id)
ON DELETE CASCADE,
FOREIGN KEY (username)
REFERENCES tbl_user (name)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE tbl_schema (
id int unsigned NOT NULL AUTO_INCREMENT,
version varchar(64) NOT NULL,
timestamp bigint unsigned NOT NULL,
success enum ('n', 'y') DEFAULT NULL,
reason text DEFAULT NULL,
PRIMARY KEY (id),
CONSTRAINT idx_tbl_schema_version UNIQUE (version)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC;
INSERT INTO tbl_schema (version, timestamp, success, reason)
VALUES ('0.5.8', UNIX_TIMESTAMP() * 1000, 'y', NULL);

View File

@@ -1,65 +0,0 @@
CREATE TABLE tbl_provider
(
id INTEGER PRIMARY KEY,
name TEXT,
url TEXT,
secret TEXT,
appname TEXT,
logo TEXT,
syncgroups TEXT DEFAULT NULL,
defaultgroup TEXT DEFAULT NULL,
required_groups TEXT DEFAULT NULL,
usernameblacklist TEXT DEFAULT NULL,
buttoncolor TEXT,
textcolor TEXT,
caption TEXT,
enabled TEXT,
ctime REAL,
mtime REAL
);
CREATE TABLE tbl_user
(
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
provider_id INTEGER,
mapped_local_user TEXT,
mapped_backend TEXT,
active INTEGER,
lastlogin REAL,
ctime REAL,
mtime REAL
);
CREATE TABLE tbl_group
(
id INTEGER PRIMARY KEY,
name TEXT,
parent INTEGER,
provider_id INTEGER,
ctime REAL,
mtime REAL
);
CREATE TABLE tbl_group_membership
(
id INTEGER PRIMARY KEY,
group_id INTEGER,
provider_id INTEGER,
username TEXT,
ctime REAL,
mtime REAL
);
CREATE TABLE tbl_schema
(
id INTEGER PRIMARY KEY,
version TEXT UNIQUE NOT NULL,
timestamp REAL NOT NULL,
success TEXT,
reason TEXT
);
INSERT INTO tbl_schema (version, timestamp, success, reason)
VALUES ('0.5.7', strftime('%s', 'now') * 1000, 'y', NULL);