RocketChat / RocketChat/Rocket.Chat
Team Channels can be found from non-members
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Description:
We are using private Teams in our environment. Inside the teams user are creating public and private channels.
If a public channel is created inside the team, a non-member can find that channel in the search. In the "Directory" the channel is not listed for the non-members.
If that user tries to open that channel it throws at least an error, that the room wasn't found.
Steps to reproduce:
- Create a private Team
- Create a public channel inside the Team
- Login as an user that is not a member of that Team
- Open the search (^+K) and search for that channel
Expected behavior:
Even that it is a public channel, it belongs specifically to a (private) team. So the channel should not be found by a non-member. Not in the search nor in the directory.
Actual behavior:
Private Team is called: TeamTest123
Public Channel in that team is called: ChannelTest123

The private Team I can't find in the search nor the directory. So that's correct!

The public Channel I can't find in the directory but it's found in the search.

Server Setup Information:
- Version of Rocket.Chat Server: 6.1.3
- Deployment Method: official docker image
- Number of Running Instances: 1
- MongoDB Version: 6.0
Client Setup Information
Checked with Chrome and Windows Desktop App
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the case by creating a private Team with a public channel, then use the search entry point (^+K) as a non-member and compare it with Directory. Trace how Team Channels are exposed to search and verify the visibility rules for private Teams. Done means the channel is absent from both search and Directory for non-members while remaining available to permitted users.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- authorization, search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 38/100