The dorm owner/admin should be able to invite users. This means that a user can either already have a dorm or does not yet have a dorm. If a user does not have a dorm yet, it can create one or join an existing one. Joining an existing dorm should be by invitation.
Do not allow any user to join a dorm.
Summary
The dorm owner/admin should be able to invite users. This means that a user can either already have a dorm or does not yet have a dorm. If a user does not have a dorm yet, it can create one or join an existing one. Joining an existing dorm should be by invitation.