open-webui/backend/open_webui
silentoplayz 85fb9e5ba1 fix(channels): include the owner and expand group grants in a channel member list
A standard channel keeps no membership rows, so its member list is derived
from read access grants. Two things were wrong with that derivation.

The channel owner was never part of it. Creating a channel grants its
creator nothing, so a channel left private with no grants reported zero
members while its own settings described it as private to you.

User grants and group grants were also applied as separate filters, which
intersect rather than combine. A channel granted to one user and to a group
that user does not belong to listed nobody at all, while the header count
for the same channel, derived independently, reported the union. The list
and the count contradicted each other.

Both readings now come from one roster: the granted users, the members of
the granted groups, and the channel owner, deduplicated. Group channels and
DMs are untouched, since they resolve members from their membership rows.
The helper that decides who receives notifications is also untouched.
2026-08-08 05:57:29 -04:00
..
data refac: mv backend files to /open_webui dir 2024-09-04 16:54:48 +02:00
internal refac 2026-07-31 17:41:14 -04:00
migrations perf: index group_member on (user_id, group_id) (#27822) 2026-07-31 19:09:15 -05:00
models refac 2026-08-05 00:47:49 -05:00
retrieval perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
routers fix(channels): include the owner and expand group grants in a channel member list 2026-08-08 05:57:29 -04:00
socket perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
static refac 2026-07-27 19:39:36 -04:00
storage refac 2026-07-31 17:41:14 -04:00
tools refac 2026-08-05 00:47:49 -05:00
utils refac 2026-08-05 10:37:38 -05:00
__init__.py refac 2026-07-27 19:39:36 -04:00
alembic.ini fix: Alembic CLI commands from failing 2025-08-15 04:17:47 -04:00
config.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
constants.py refac 2026-07-27 19:39:36 -04:00
env.py perf: build info log messages lazily so raising the log level actually saves work (#27837) 2026-08-02 15:39:10 -05:00
events.py refac 2026-07-27 19:39:36 -04:00
functions.py perf: build debug log messages lazily so disabled debug logs cost nothing (#27834) 2026-07-31 19:09:01 -05:00
main.py refac 2026-08-05 10:37:38 -05:00
tasks.py refac 2026-07-31 17:41:14 -04:00