From dd93ea5cca59fddd868e51595f0e512348d65ee7 Mon Sep 17 00:00:00 2001
From: anima
Date: Wed, 1 Oct 2025 18:07:34 +0200
Subject: [PATCH] fix oidc module db schema
---
modules/oidc/mysql.schema.sql | 90 ++++++++++++++++++++++++++++++++++
modules/oidc/sqlite.schema.sql | 65 ------------------------
2 files changed, 90 insertions(+), 65 deletions(-)
create mode 100644 modules/oidc/mysql.schema.sql
delete mode 100644 modules/oidc/sqlite.schema.sql
diff --git a/modules/oidc/mysql.schema.sql b/modules/oidc/mysql.schema.sql
new file mode 100644
index 0000000..4c0833a
--- /dev/null
+++ b/modules/oidc/mysql.schema.sql
@@ -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);
\ No newline at end of file
diff --git a/modules/oidc/sqlite.schema.sql b/modules/oidc/sqlite.schema.sql
deleted file mode 100644
index 8cc191c..0000000
--- a/modules/oidc/sqlite.schema.sql
+++ /dev/null
@@ -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);
\ No newline at end of file