From 7aa3b7d9101c0812f793d49eedc90d63c08d8b2d Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 16 Feb 2026 00:36:16 +0000 Subject: [PATCH] membres roles canaux affichage --- api_v1_roles.php | 12 ++++++++++++ assets/js/main.js | 18 +++++++++--------- index.php | 9 ++++++++- requests.log | 30 ++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 10 deletions(-) diff --git a/api_v1_roles.php b/api_v1_roles.php index 7763b81..1144b04 100644 --- a/api_v1_roles.php +++ b/api_v1_roles.php @@ -43,10 +43,22 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $stmt->execute([$server_id, $server_id, $server_id, $server_id]); $members = $stmt->fetchAll(); + $filtered_members = null; + $channel_id = $_GET['channel_id'] ?? 0; + if ($channel_id) { + $filtered_members = []; + foreach ($members as $m) { + if (Permissions::canViewChannel($m['id'], $channel_id)) { + $filtered_members[] = $m; + } + } + } + echo json_encode([ 'success' => true, 'roles' => $roles, 'members' => $members, + 'filtered_members' => $filtered_members, 'permissions_list' => [ ['value' => 1, 'name' => 'View Channels'], ['value' => 2, 'name' => 'Send Messages'], diff --git a/assets/js/main.js b/assets/js/main.js index 3f261c9..87eac19 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -1204,18 +1204,17 @@ document.addEventListener('DOMContentLoaded', () => { membersTabBtn?.addEventListener('click', loadRoles); // Both tabs need roles data async function loadRoles() { - if (rolesList) rolesList.innerHTML = '
Loading...
'; - if (membersList) membersList.innerHTML = '
Loading...
'; - try { - const resp = await fetch(`api_v1_roles.php?server_id=${activeServerId}`); + const channelIdParam = window.activeChannelId ? `&channel_id=${window.activeChannelId}` : ''; + const resp = await fetch(`api_v1_roles.php?server_id=${activeServerId}${channelIdParam}`); const data = await resp.json(); if (data.success) { serverRoles = data.roles; serverPermissions = data.permissions_list; if (rolesList) renderRoles(data.roles); if (membersList) renderMembers(data.members); - updateGlobalUI(data.members); + // Use filtered members for sidebar, all members for colors + updateGlobalUI(data.filtered_members || data.members, data.members); } } catch (e) { console.error(e); } } @@ -1230,19 +1229,20 @@ document.addEventListener('DOMContentLoaded', () => { } } - function updateGlobalUI(members) { + function updateGlobalUI(sidebarMembers, allMembers = null) { + if (!allMembers) allMembers = sidebarMembers; // Update members sidebar const sidebar = document.querySelector('.members-sidebar'); if (sidebar) { const countEl = sidebar.querySelector('div[style*="text-transform: uppercase"]'); - if (countEl) countEl.textContent = `Members — ${members.length}`; + if (countEl) countEl.textContent = `Members — ${sidebarMembers.length}`; // We need to keep the "Members - X" div and replace everything else const header = sidebar.firstElementChild; sidebar.innerHTML = ''; sidebar.appendChild(header); - members.forEach(m => { + sidebarMembers.forEach(m => { const item = document.createElement('div'); item.className = 'channel-item member-item'; item.dataset.userId = m.id; @@ -1273,7 +1273,7 @@ document.addEventListener('DOMContentLoaded', () => { // Update chat colors document.querySelectorAll('.message-author').forEach(authorEl => { const username = authorEl.childNodes[0].textContent.trim(); - const member = members.find(m => m.username === username); + const member = allMembers.find(m => m.username === username); if (member) { authorEl.style.color = member.role_color || 'inherit'; // Try to update icon if it exists or add it if it doesn't diff --git a/index.php b/index.php index 5d29f85..7a6c852 100644 --- a/index.php +++ b/index.php @@ -200,7 +200,14 @@ if ($is_dm_view) { WHERE sm.server_id = ? "); $stmt->execute([$active_server_id, $active_server_id, $active_server_id, $active_server_id]); - $members = $stmt->fetchAll(); + $all_server_members = $stmt->fetchAll(); + + $members = []; + foreach($all_server_members as $m) { + if (Permissions::canViewChannel($m['id'], $active_channel_id)) { + $members[] = $m; + } + } // Fetch all server roles $stmt = db()->prepare("SELECT * FROM roles WHERE server_id = ? ORDER BY position DESC"); diff --git a/requests.log b/requests.log index 8b37c7f..9941543 100644 --- a/requests.log +++ b/requests.log @@ -94,3 +94,33 @@ 2026-02-16 00:25:16 - GET /index.php?server_id=1&channel_id=6 - POST: [] 2026-02-16 00:25:18 - GET /index.php?server_id=1&channel_id=15 - POST: [] 2026-02-16 00:25:27 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:28:38 - GET / - POST: [] +2026-02-16 00:28:56 - GET /?fl_project=38443 - POST: [] +2026-02-16 00:29:17 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:29:44 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:29:47 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:30:05 - GET /index.php?server_id=1&channel_id=11 - POST: [] +2026-02-16 00:30:37 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:30:39 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:30:55 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:30:57 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:30:59 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:31:02 - GET /index.php?server_id=1&channel_id=6 - POST: [] +2026-02-16 00:31:04 - GET /index.php?server_id=1&channel_id=1 - POST: [] +2026-02-16 00:31:06 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:31:09 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:31:11 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:31:13 - GET /index.php?server_id=1&channel_id=6 - POST: [] +2026-02-16 00:31:15 - GET /index.php?server_id=1&channel_id=1 - POST: [] +2026-02-16 00:31:16 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:31:59 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:32:08 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:32:15 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:32:19 - GET /index.php?server_id=1&channel_id=6 - POST: [] +2026-02-16 00:32:21 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:32:45 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:34:01 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:34:31 - GET /index.php?server_id=1&channel_id=2 - POST: [] +2026-02-16 00:34:34 - GET /index.php?server_id=1&channel_id=15 - POST: [] +2026-02-16 00:34:36 - GET /index.php?server_id=1&channel_id=6 - POST: [] +2026-02-16 00:34:39 - GET /index.php?server_id=1&channel_id=1 - POST: []