I am building a sport application where people of a city can organize football matches and join other matches as simple users.
We have currently built the basics of the application: users can create matches and other users can join them, paying the price set by the organizer.
However we have use cases where people want to play with their own group of friends and have a "private" match. We need to adjust our product to support this and we don't know the best way forward.
We thought about having password protected events where organizers share a password to join the event only with the users they want. For other users this will end up in having a UI in which they see all the available matches and some of them will be "locked" and require a password. Possible drawbacks of this is that the password can be shared from user A to user B even if the organizer did not intend to invite user B (but only user A).
Another option is to have link sharing: only users with the link can see the match. In this case I am not sure how the "list available matches" UI would look like for users: will they start to see this private matches right after the link? Or not? Also it would suffer from the same problem mentioned before (user B could get a link even if not invited).
Probably a good option is to implement group membership. But this seems more complex and requires more interaction from users and organizers (send invite, join group and then join match).
What do you think?