Nachrichten: Design-Label, server-seitige Präferenz, mobiler Leerraum fix
This commit is contained in:
@@ -246,6 +246,11 @@ if (msgCols2.length && !msgCols2.includes('read_by_recipient')) {
|
||||
db.exec("ALTER TABLE messages ADD COLUMN read_by_recipient INTEGER NOT NULL DEFAULT 0");
|
||||
}
|
||||
|
||||
// User-Preferences (JSON-Blob)
|
||||
const userCols2 = db.prepare("PRAGMA table_info(users)").all().map(r => r.name);
|
||||
if (!userCols2.includes('preferences'))
|
||||
db.exec("ALTER TABLE users ADD COLUMN preferences TEXT DEFAULT NULL");
|
||||
|
||||
// ── Login-Sicherheit ──────────────────────────────────────────────────────────
|
||||
// Spalten für Account-Lockout in users-Tabelle
|
||||
const userCols = db.prepare("PRAGMA table_info(users)").all().map(r => r.name);
|
||||
|
||||
@@ -150,4 +150,20 @@ router.delete('/account', authenticate, (req, res) => {
|
||||
res.json({ success: true });
|
||||
});
|
||||
|
||||
// ── GET/PUT /api/auth/preferences ─────────────────────────────────────────────
|
||||
router.get('/preferences', authenticate, (req, res) => {
|
||||
const user = db.prepare('SELECT preferences FROM users WHERE id=?').get(req.user.id);
|
||||
try { res.json(JSON.parse(user?.preferences || '{}')); }
|
||||
catch { res.json({}); }
|
||||
});
|
||||
|
||||
router.put('/preferences', authenticate, (req, res) => {
|
||||
const user = db.prepare('SELECT preferences FROM users WHERE id=?').get(req.user.id);
|
||||
let current = {};
|
||||
try { current = JSON.parse(user?.preferences || '{}'); } catch {}
|
||||
const merged = { ...current, ...req.body };
|
||||
db.prepare('UPDATE users SET preferences=? WHERE id=?').run(JSON.stringify(merged), req.user.id);
|
||||
res.json(merged);
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user