From 95cfa227e9072341b5e3538fc6eb4a78b0217148 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Tue, 17 Feb 2026 08:28:15 +0000 Subject: [PATCH] Autosave: 20260217-082815 --- api_v1_dms.php | 2 +- api_v1_messages.php | 8 ++++---- api_v1_roles.php | 2 +- api_v1_rss.php | 2 +- api_v1_search.php | 8 ++++---- api_v1_stats.php | 2 +- api_v1_user.php | 6 +++--- db/migrations/add_display_name.sql | 2 ++ index.php | 26 +++++++++++++++----------- requests.log | 1 + 10 files changed, 33 insertions(+), 26 deletions(-) create mode 100644 db/migrations/add_display_name.sql diff --git a/api_v1_dms.php b/api_v1_dms.php index fea2583..db3aea3 100644 --- a/api_v1_dms.php +++ b/api_v1_dms.php @@ -50,7 +50,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { // Fetch all DM channels for current user try { $stmt = db()->prepare(" - SELECT c.id, u.username as other_user, u.avatar_url, u.status, u.id as other_user_id + SELECT c.id, u.display_name as other_user, u.username as login_name, u.avatar_url, u.status, u.id as other_user_id FROM channels c JOIN channel_members cm1 ON c.id = cm1.channel_id JOIN channel_members cm2 ON c.id = cm2.channel_id diff --git a/api_v1_messages.php b/api_v1_messages.php index 5294835..c5d1302 100644 --- a/api_v1_messages.php +++ b/api_v1_messages.php @@ -44,7 +44,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $server_id = $stmt->fetchColumn(); $stmt = db()->prepare(" - SELECT m.*, u.username, u.avatar_url, + SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url, (SELECT r.color FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_color, (SELECT r.icon_url FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_icon FROM messages m @@ -76,7 +76,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $server_id = $stmt->fetchColumn(); $stmt = db()->prepare(" - SELECT m.*, u.username, u.avatar_url, + SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url, (SELECT r.color FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_color, (SELECT r.icon_url FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_icon FROM messages m @@ -241,7 +241,7 @@ try { // Fetch message with username and role color for the response $stmt = db()->prepare(" - SELECT m.*, u.username, u.avatar_url, + SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url, (SELECT r.color FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_color, (SELECT r.icon_url FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_icon FROM messages m @@ -256,7 +256,7 @@ try { 'message' => [ 'id' => $msg['id'], 'user_id' => $msg['user_id'], - 'username' => $msg['username'], + 'username' => $msg['username'], 'login_name' => $msg['login_name'], 'avatar_url' => $msg['avatar_url'], 'role_color' => $msg['role_color'], 'role_icon' => $msg['role_icon'], diff --git a/api_v1_roles.php b/api_v1_roles.php index 1144b04..84539f7 100644 --- a/api_v1_roles.php +++ b/api_v1_roles.php @@ -28,7 +28,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { // Fetch members and their roles $stmt = db()->prepare(" - SELECT u.id, u.username, u.avatar_url, + SELECT u.id, u.display_name as username, u.username as login_name, u.avatar_url, GROUP_CONCAT(r.id) as role_ids, GROUP_CONCAT(r.name) as role_names, (SELECT r2.color FROM roles r2 JOIN user_roles ur2 ON r2.id = ur2.role_id WHERE ur2.user_id = u.id AND r2.server_id = ? ORDER BY r2.position DESC LIMIT 1) as role_color, diff --git a/api_v1_rss.php b/api_v1_rss.php index 5b81f82..44336d8 100644 --- a/api_v1_rss.php +++ b/api_v1_rss.php @@ -138,7 +138,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $stmt_bot->execute(); $bot = $stmt_bot->fetch(); if (!$bot) { - $stmt_create_bot = db()->prepare("INSERT INTO users (username, is_bot, status, avatar_url, email, password_hash) VALUES ('RSS Bot', 1, 'online', 'https://cdn-icons-png.flaticon.com/512/3607/3607436.png', 'rss-bot@system.internal', 'bot-no-password')"); + $stmt_create_bot = db()->prepare("INSERT INTO users (username, display_name, is_bot, status, avatar_url, email, password_hash) VALUES ('RSS Bot', 'RSS Bot', 1, 'online', 'https://cdn-icons-png.flaticon.com/512/3607/3607436.png', 'rss-bot@system.internal', 'bot-no-password')"); $stmt_create_bot->execute(); $bot_id = db()->lastInsertId(); } else { diff --git a/api_v1_search.php b/api_v1_search.php index 5ecddb9..121e284 100644 --- a/api_v1_search.php +++ b/api_v1_search.php @@ -16,15 +16,15 @@ if (empty($query)) { try { if ($type === 'users') { $stmt = db()->prepare(" - SELECT id, username, avatar_url, status + SELECT id, display_name as username, username as login_name, avatar_url, status FROM users - WHERE username LIKE ? + WHERE username LIKE ? OR display_name LIKE ? LIMIT 20 "); - $stmt->execute(["%" . $query . "%"]); + $stmt->execute(["%" . $query . "%", "%" . $query . "%"]); $results = $stmt->fetchAll(); } else { - $sql = "SELECT m.*, u.username, u.avatar_url + $sql = "SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url FROM messages m JOIN users u ON m.user_id = u.id WHERE m.content LIKE ? "; diff --git a/api_v1_stats.php b/api_v1_stats.php index dd8196e..1403d9e 100644 --- a/api_v1_stats.php +++ b/api_v1_stats.php @@ -48,7 +48,7 @@ try { // Top active users $stmt = db()->prepare(" - SELECT u.username, COUNT(*) as message_count + SELECT u.display_name as username, u.username as login_name, COUNT(*) as message_count FROM messages m JOIN channels c ON m.channel_id = c.id JOIN users u ON m.user_id = u.id diff --git a/api_v1_user.php b/api_v1_user.php index 22db499..bb612e4 100644 --- a/api_v1_user.php +++ b/api_v1_user.php @@ -21,15 +21,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $log['user_id'] = $user['id']; - $username = !empty($_POST['username']) ? $_POST['username'] : $user['username']; + $display_name = !empty($_POST['display_name']) ? $_POST['display_name'] : $user['display_name']; $avatar_url = isset($_POST['avatar_url']) ? $_POST['avatar_url'] : $user['avatar_url']; $dnd_mode = isset($_POST['dnd_mode']) ? (int)$_POST['dnd_mode'] : 0; $sound_notifications = isset($_POST['sound_notifications']) ? (int)$_POST['sound_notifications'] : 0; $theme = !empty($_POST['theme']) ? $_POST['theme'] : $user['theme']; try { - $stmt = db()->prepare("UPDATE users SET username = ?, avatar_url = ?, dnd_mode = ?, sound_notifications = ?, theme = ? WHERE id = ?"); - $success = $stmt->execute([$username, $avatar_url, $dnd_mode, $sound_notifications, $theme, $user['id']]); + $stmt = db()->prepare("UPDATE users SET display_name = ?, avatar_url = ?, dnd_mode = ?, sound_notifications = ?, theme = ? WHERE id = ?"); + $success = $stmt->execute([$display_name, $avatar_url, $dnd_mode, $sound_notifications, $theme, $user['id']]); $log['db_success'] = $success; file_put_contents('requests.log', json_encode($log) . "\n", FILE_APPEND); diff --git a/db/migrations/add_display_name.sql b/db/migrations/add_display_name.sql new file mode 100644 index 0000000..a50bb9f --- /dev/null +++ b/db/migrations/add_display_name.sql @@ -0,0 +1,2 @@ +ALTER TABLE users ADD COLUMN display_name VARCHAR(50) AFTER username; +UPDATE users SET display_name = username WHERE display_name IS NULL OR display_name = ""; diff --git a/index.php b/index.php index e88629e..3d2ac5f 100644 --- a/index.php +++ b/index.php @@ -153,7 +153,7 @@ if ($is_dm_view) { $active_server_id = 'dms'; // Fetch DM channels $stmt = db()->prepare(" - SELECT c.id, u.username as other_user, u.avatar_url, u.status, u.id as other_user_id + SELECT c.id, u.display_name as other_user, u.avatar_url, u.status, u.id as other_user_id FROM channels c JOIN channel_members cm1 ON c.id = cm1.channel_id JOIN channel_members cm2 ON c.id = cm2.channel_id @@ -169,7 +169,7 @@ if ($is_dm_view) { if ($active_channel_id) { // Fetch DM messages $stmt = db()->prepare(" - SELECT m.*, u.username, u.avatar_url + SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url FROM messages m JOIN users u ON m.user_id = u.id WHERE m.channel_id = ? @@ -240,13 +240,13 @@ if ($is_dm_view) { $active_thread = null; if ($active_thread_id) { - $stmt = db()->prepare("SELECT t.*, u.username FROM forum_threads t JOIN users u ON t.user_id = u.id WHERE t.id = ?"); + $stmt = db()->prepare("SELECT t.*, u.display_name as username, u.username as login_name FROM forum_threads t JOIN users u ON t.user_id = u.id WHERE t.id = ?"); $stmt->execute([$active_thread_id]); $active_thread = $stmt->fetch(); if ($active_thread) { $stmt = db()->prepare(" - SELECT m.*, u.username, u.avatar_url, + SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url, (SELECT r.color FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_color, (SELECT r.icon_url FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_icon FROM messages m @@ -294,7 +294,7 @@ if ($is_dm_view) { // Fetch messages $display_limit = !empty($active_channel['message_limit']) ? (int)$active_channel['message_limit'] : 50; $stmt = db()->prepare(" - SELECT m.*, u.username, u.avatar_url, + SELECT m.*, u.display_name as username, u.username as login_name, u.avatar_url, (SELECT r.color FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_color, (SELECT r.icon_url FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_icon FROM messages m @@ -312,7 +312,7 @@ if ($is_dm_view) { // Fetch members $stmt = db()->prepare(" - SELECT u.id, u.username, u.avatar_url, u.status, + SELECT u.id, u.display_name as username, u.username as login_name, u.avatar_url, u.status, (SELECT GROUP_CONCAT(r.id) FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ?) as role_ids, (SELECT r.color FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_color, (SELECT r.icon_url FROM roles r JOIN user_roles ur ON r.id = ur.role_id WHERE ur.user_id = u.id AND r.server_id = ? ORDER BY r.position DESC LIMIT 1) as role_icon @@ -363,7 +363,7 @@ $projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';