From 8d92e94bd65ce249a647f9b99b79d6a92d725469 Mon Sep 17 00:00:00 2001 From: Chi Cong Tran Date: Tue, 8 Jul 2025 09:29:06 +0200 Subject: [PATCH] populate db with default user --- src/init/init_db.js | 42 +++++++++++++++++++++++++++++++++++++++++ src/lib/data/tatort.db | Bin 0 -> 20480 bytes 2 files changed, 42 insertions(+) create mode 100644 src/init/init_db.js create mode 100644 src/lib/data/tatort.db diff --git a/src/init/init_db.js b/src/init/init_db.js new file mode 100644 index 0000000..fdf9caa --- /dev/null +++ b/src/init/init_db.js @@ -0,0 +1,42 @@ +import sqlite3 from 'sqlite3'; +import jsSHA from 'jssha'; + +const db = new sqlite3.Database('./src/lib/data/tatort.db'); + +db.serialize(() => { + // users table + + let create_stmt = `CREATE TABLE IF NOT EXISTS users + (id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + pw TEXT NOT NULL)`; + db.run(create_stmt); + + // check if there are any users; if not add one default admin one + let pw = 'pass-123'; + let hashed_pw = new jsSHA('SHA-512', 'TEXT').update(pw).getHash('HEX'); + + let check_ins_stmt = `INSERT INTO users (name, pw) SELECT 'admin', '${hashed_pw}' + WHERE NOT EXISTS (SELECT * FROM users);`; + + db.run(check_ins_stmt); + + let users_stmt = `SELECT * FROM USERS`; + db.each(users_stmt, (err, row) => { + console.log(`xxx ${row.name} + ${row.pw}`) + }); + + // cases table + + create_stmt = `CREATE TABLE IF NOT EXISTS cases + (id INTEGER PRIMARY KEY AUTOINCREMENT, + token TEXT NOT NULL UNIQUE, + name TEXT NOT NULL, + pw TEXT NOT NULL, + created_by INTEGER NOT NULL, + FOREIGN KEY(created_by) REFERENCES users(id))`; + + db.run(create_stmt); +}); + +db.close(); diff --git a/src/lib/data/tatort.db b/src/lib/data/tatort.db new file mode 100644 index 0000000000000000000000000000000000000000..5ab89f54ecaf1ee75b802b347fd29e7c543807b9 GIT binary patch literal 20480 zcmeI&&uZH+90zc@N&l>nWj9}T&@o=i@E^s04ufSyEn%tKx(+O-AS*J2Ht8CtY&$mW zN%jJLp*=^>Q@o{X0v&AhFv?e0wj}E(OCOyCK0WCSr;6qmlaZKGkGvp;LEchI2&w42 zuJa{VscG)?2HHx=2rlA=&Wd8_Uvyp?jAw%&C(Et|IKz0?>EXgf~%0Z-_0(mre@ zJ^G&aXseqZwPPK8$m4W(DTGch&eWKu{6k9PBb~dQ4(-P6lP+KBI2I$d+;64B$4`HJ zEhkD$)u5k!xtrtSgDV5=A0@nf5YMOH_#I`@gzxi&$9w#gUKMIm=;d0LRoyV(mz78kV>7cHvz%RdTU&}Ro0juqD5n6sJ~jD}-73|THz9?B^5GvzsX~F%kqI009U<00Izz00bZa0SG_<0{?@+mQgXEmA@R!&;R