mirror of
https://github.com/open-webui/open-webui.git
synced 2026-11-05 07:57:06 +00:00
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. |
||
|---|---|---|
| .. | ||
| data | ||
| internal | ||
| migrations | ||
| models | ||
| retrieval | ||
| routers | ||
| socket | ||
| static | ||
| storage | ||
| tools | ||
| utils | ||
| __init__.py | ||
| alembic.ini | ||
| config.py | ||
| constants.py | ||
| env.py | ||
| events.py | ||
| functions.py | ||
| main.py | ||
| tasks.py | ||