I like the concept. I was curious about your implementation and noticed that you load all user groups of the current mentioning user, then load all users of these groups. For small communities this might be fine, but on larger communities you will soon run into extremely loading times and the risk of locking the database up.
A better solution would be to query the users that are part of the groups of the user, and doing the filtering on the database as well. What do you think?