mirror of
https://github.com/slynn1324/tinypin.git
synced 2026-01-23 02:25:08 +00:00
fix settings
This commit is contained in:
parent
deaa8ded34
commit
dcc063a4de
5 changed files with 69 additions and 22 deletions
|
|
@ -94,7 +94,7 @@ module.exports = async (req, res, next) => {
|
|||
} else if ( req.method == "GET" && req.originalUrl == "/register" ){
|
||||
|
||||
let registerEnabled = dao.getProperty("registerEnabled");
|
||||
if ( registerEnabled != "y" ){
|
||||
if ( registerEnabled != 'y' ){
|
||||
res.sendStatus(403);
|
||||
return;
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@ module.exports = async (req, res, next) => {
|
|||
} else if ( req.method == "POST" && req.originalUrl == "/register" ){
|
||||
|
||||
let registerEnabled = dao.getProperty("registerEnabled");
|
||||
if ( registerEnabled != "y" ){
|
||||
if ( registerEnabled != 'y' ){
|
||||
res.sendStatus(403);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,17 +365,63 @@ async function init(path){
|
|||
|
||||
db.transaction( () => {
|
||||
|
||||
db.prepare('ALTER TABLE users ADD COLUMN admin').run();
|
||||
db.prepare('ALTER TABLE users ADD COLUMN uuid').run(); // need a uuid column to track real uniqueness, because we didn't use AUTOINCREMENT.
|
||||
db.prepare(`
|
||||
CREATE TABLE users_new (
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
key TEXT NOT NULL,
|
||||
salt TEXT NOT NULL,
|
||||
createDate TEXT
|
||||
)
|
||||
`).run();
|
||||
|
||||
db.prepare(`
|
||||
CREATE TABLE boards_new (
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
userId INTEGER NOT NULL,
|
||||
createDate TEXT,
|
||||
hidden INTEGER,
|
||||
|
||||
FOREIGN KEY (userId) REFERENCES users_new(id)
|
||||
)
|
||||
`).run();
|
||||
|
||||
db.prepare(`
|
||||
CREATE TABLE pins_new (
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
boardId INTEGER NOT NULL,
|
||||
imageUrl TEXT,
|
||||
siteUrl TEXT,
|
||||
description TEXT,
|
||||
sortOrder INTEGER,
|
||||
originalHeight INTEGER,
|
||||
originalWidth INTEGER,
|
||||
thumbnailHeight INTEGER,
|
||||
thumbnailWidth INTEGER,
|
||||
userId INTEGER NOT NULL,
|
||||
createDate TEXT,
|
||||
|
||||
FOREIGN KEY (boardId) REFERENCES boards_new(id),
|
||||
FOREIGN KEY (userId) REFERENCES users_new(id)
|
||||
)
|
||||
`).run();
|
||||
|
||||
db.prepare("INSERT INTO users_new SELECT * FROM users").run();
|
||||
db.prepare("INSERT INTO boards_new SELECT * FROM boards").run();
|
||||
db.prepare("INSERT INTO pins_new SELECT * FROM pins").run();
|
||||
|
||||
db.prepare("UPDATE users SET admin = 1").run();
|
||||
db.prepare("ALTER TABLE users_new ADD COLUMN admin INTEGER").run();
|
||||
|
||||
let users = db.prepare("SELECT id FROM users").all();
|
||||
db.prepare("UPDATE users_new SET admin = 1").run();
|
||||
|
||||
for ( let i = 0; i < users.length; ++i ){
|
||||
let uuid = crypto.randomBytes(16).toString("hex"); // not a real uuid, but serves the same purpose
|
||||
db.prepare("UPDATE users SET uuid = @uuid WHERE id = @id").run({id: users[i].id, uuid: uuid});
|
||||
}
|
||||
db.prepare("DROP TABLE pins").run();
|
||||
db.prepare("DROP TABLE boards").run();
|
||||
db.prepare("DROP TABLE users").run();
|
||||
|
||||
db.prepare("ALTER TABLE pins_new RENAME TO pins").run();
|
||||
db.prepare("ALTER TABLE boards_new RENAME TO boards").run();
|
||||
db.prepare("ALTER TABLE users_new RENAME TO users").run();
|
||||
|
||||
db.prepare(`
|
||||
INSERT INTO properties (key,value) VALUES (@key, @value)
|
||||
|
|
|
|||
|
|
@ -380,7 +380,7 @@ module.exports = async () => {
|
|||
app.get("/settings", (req, res) => {
|
||||
|
||||
let user = dao.getUser(req.user.id);
|
||||
if ( user.admin != "y" ){
|
||||
if ( user.admin != 1 ){
|
||||
res.sendStatus(403);
|
||||
return;
|
||||
}
|
||||
|
|
@ -403,7 +403,7 @@ module.exports = async () => {
|
|||
app.post("/settings", async (req, res) => {
|
||||
|
||||
let user = dao.getUser(req.user.id);
|
||||
if ( user.admin != "y" ){
|
||||
if ( user.admin != 1 ){
|
||||
res.sendStatus(403);
|
||||
return;
|
||||
}
|
||||
|
|
@ -426,10 +426,11 @@ module.exports = async () => {
|
|||
return;
|
||||
|
||||
} else if ( req.body.action == "updateSettings" ){
|
||||
let registerEnabled = 'y';
|
||||
let registerEnabled = "y";
|
||||
if ( req.body.registerEnabled == "n" ){
|
||||
registerEnabled = 'n';
|
||||
registerEnabled = "n";
|
||||
}
|
||||
console.log("set register enabled=" + registerEnabled);
|
||||
dao.setProperty('registerEnabled', registerEnabled);
|
||||
|
||||
res.redirect("./settings#settings-updated");
|
||||
|
|
@ -451,7 +452,7 @@ module.exports = async () => {
|
|||
let key = await tokenUtils.deriveKey(salt, password);
|
||||
|
||||
try{
|
||||
dao.createUser(username, 'n', key, salt);
|
||||
dao.createUser(username, 0, key, salt);
|
||||
} catch (err){
|
||||
console.log("error creating user " + username, err);
|
||||
res.redirect("./settings#create-user-error");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue