Restricting Room Discovery

I’ve noticed that restrictions on room discovery are currently very limited. It seems that there are basically three options:

  • Able/Not able to view locked rooms
  • Able to view rooms that are listed in the directory

I would like to have a third control to limit listing to users that are in the rooms being listed. For example, I would like the system to not list membersonly rooms for which the user is not on the membership list.

In looking at the code, it appears that this would affect two classes (MultiUserChatServiceImpl.java:canDiscoverRoom, IQMUCSearchHandler.java:canBeIncludedInResult, and the callers (all within the classes themselves) of these two methods). I realize that there could be some performance implications of this in certain cases involving large numbers of rooms, and large numbers of participants, but I would expect those to be minimal.

If a patch were developed, would this likely be accepted into the source tree? And are there any issues foreseen with this approach beyond this (or suggestions for implementing it?)

Thanks for your help and advice.