mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-04-19 20:09:14 +03:00
61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
|
|
// matches version in scheme.sql
|
|
|
|
$db_version=2;
|
|
|
|
// Initialise a new DB with latest version
|
|
|
|
function init_db() {
|
|
global $authdb, $db;
|
|
|
|
is_dir(dirname($authdb)) || mkdir(dirname($authdb));
|
|
$db = new SQLite3($authdb, SQLITE3_OPEN_CREATE|SQLITE3_OPEN_READWRITE);
|
|
$createsql = file_get_contents('includes/scheme.sql');
|
|
$db->exec($createsql);
|
|
$salt = bin2hex(openssl_random_pseudo_bytes(16));
|
|
$db->exec("INSERT INTO users (emailaddress, password, isadmin) VALUES ('admin', '".crypt("admin", '$6$'.$salt)."', 1)");
|
|
|
|
return $db;
|
|
}
|
|
|
|
function open_db() {
|
|
global $authdb, $db;
|
|
|
|
if (!isset($db)) {
|
|
$db = new SQLite3($authdb, SQLITE3_OPEN_READWRITE);
|
|
$db->exec('PRAGMA foreign_keys = 1');
|
|
}
|
|
|
|
$version = intval($db->querySingle('SELECT value FROM metadata WHERE name = "version"'));
|
|
|
|
switch($version) {
|
|
case 0:
|
|
$sql = file_get_contents('includes/upgrade-0-1.sql');
|
|
$db->exec($sql);
|
|
writelog("Upgraded schema to version 1","system");
|
|
// continue
|
|
case 1: // never existed
|
|
$sql = file_get_contents('includes/upgrade-1-2.sql');
|
|
$db->exec($sql);
|
|
writelog("Upgraded schema to version 2","system");
|
|
// continue
|
|
case $db_version:
|
|
break;
|
|
}
|
|
|
|
return $db;
|
|
}
|
|
|
|
function get_db() {
|
|
global $authdb, $db;
|
|
|
|
if (!isset($db)) {
|
|
$db = new SQLite3($authdb, SQLITE3_OPEN_READWRITE);
|
|
$db->exec('PRAGMA foreign_keys = 1');
|
|
}
|
|
|
|
return $db;
|
|
}
|
|
|
|
?>
|