Group Join is a simple plugin-based utility that lets you control how users may join a group. This may be done by creating a "group join access" field, and in the group type's settings, enabling that field for controlling access to the "join" route. Each field may be configured to use "and," "or," or "xor" logic if multiple methods are allowed.