diff --git a/server/boot/db.js b/server/boot/db.js index 9683a0e..64f8640 100644 --- a/server/boot/db.js +++ b/server/boot/db.js @@ -59,7 +59,7 @@ module.exports = function () { } else { const userVersion = row.user_version - if (userVersion === 0) { + if (userVersion < 1) { db.run('ALTER TABLE samples ADD COLUMN fade_in REAL DEFAULT 0') db.run('ALTER TABLE samples ADD COLUMN loop_points_enabled INTEGER DEFAULT 0') db.run('ALTER TABLE samples ADD COLUMN loop_start REAL DEFAULT 0') @@ -67,6 +67,12 @@ module.exports = function () { db.run('PRAGMA user_version = 1') } + + if (userVersion < 2) { + db.run('ALTER TABLE users ADD COLUMN preferences TEXT DEFAULT "{}"') + + db.run('PRAGMA user_version = 2') + } } }) }) diff --git a/server/routes/users.js b/server/routes/users.js index a13029b..7bb8e00 100644 --- a/server/routes/users.js +++ b/server/routes/users.js @@ -9,7 +9,11 @@ router.get('/users/current', (req, res) => { return res.sendStatus(401) } - db.get('SELECT is_admin as isAdmin, dark_mode as darkMode, can_upload as canUpload, * FROM users WHERE id = ?', [req.user.id], (err, row) => { + db.get(`SELECT + is_admin as isAdmin, + dark_mode as darkMode, + can_upload as canUpload, + * FROM users WHERE id = ?`, [req.user.id], (err, row) => { if (err) { logger.error(err) return res.sendStatus(500) @@ -24,6 +28,7 @@ router.get('/users/current', (req, res) => { user.isAdmin = row.isAdmin === 1 user.darkMode = row.darkMode === 1 user.canUpload = row.canUpload === 1 + user.preferences = JSON.parse(row.preferences) } res.json({ user: user }) @@ -287,4 +292,23 @@ router.delete('/users/:userId', (req, res) => { }) }) +router.patch('/users/preferences', (req, res) => { + if (!req.user) { + return res.sendStatus(401) + } + + const preferences = JSON.stringify(req.body.preferences) + + db.serialize(() => { + db.run('UPDATE users SET preferences = ? WHERE id = ?', [preferences, req.user.id], (err) => { + if (err) { + logger.error(err) + return res.sendStatus(500) + } else { + return res.sendStatus(200) + } + }) + }) +}) + module.exports = router diff --git a/src/components/AccountPage.vue b/src/components/AccountPage.vue index e43407a..9b0e3c9 100644 --- a/src/components/AccountPage.vue +++ b/src/components/AccountPage.vue @@ -8,6 +8,10 @@ +

+ User Management +

+ ID: {{ currentUser.id }} @@ -26,7 +30,7 @@ >