- Add mattermost_id column to RefBoard users for OAuth linking

- Admin panel shows per-user RefBoard login status (Active vs Not signed in)
- Add RefBoard config: REFBOARD_PUBLIC_URL, REFBOARD_INTERNAL_URL, REFBOARD_API_KEY
- Update .env.example with RefBoard section
This commit is contained in:
Hiren
2026-03-11 13:40:00 +05:30
parent 6518ed6763
commit 155dc6ac01
4 changed files with 257 additions and 107 deletions
+16 -1
View File
@@ -204,6 +204,12 @@ try {
db.exec("ALTER TABLE images ADD COLUMN native_width INTEGER");
db.exec("ALTER TABLE images ADD COLUMN native_height INTEGER");
}
try {
db.prepare("SELECT mattermost_id FROM users LIMIT 0").get();
} catch {
db.exec("ALTER TABLE users ADD COLUMN mattermost_id TEXT");
db.exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_users_mattermost_id ON users(mattermost_id)");
}
// ---------------------
// User helpers
@@ -220,6 +226,14 @@ function getUserByUsername(username) {
return db.prepare('SELECT * FROM users WHERE username = ? AND is_active = 1').get(username);
}
function getUserByMattermostId(mmId) {
return db.prepare('SELECT * FROM users WHERE mattermost_id = ? AND is_active = 1').get(mmId);
}
function updateUserMattermostId(userId, mmId) {
db.prepare("UPDATE users SET mattermost_id = ?, updated_at = datetime('now') WHERE id = ?").run(mmId, userId);
}
function createUser({ id, email, username, passwordHash, displayName, role }) {
db.prepare(`
INSERT INTO users (id, email, username, password_hash, display_name, role)
@@ -641,7 +655,8 @@ function deleteComment(commentId) {
module.exports = {
db,
// Users
getUserByEmail, getUserById, getUserByUsername, createUser,
getUserByEmail, getUserById, getUserByUsername, getUserByMattermostId,
createUser, updateUserMattermostId,
getAllUsers, updateUserPassword, deactivateUser, getUserCount,
// Collections
getCollections, getCollection, getCollectionByShareToken,