|
|
|
@ -50,6 +50,8 @@ class RegistrationHandler(BaseHandler): |
|
|
|
|
self._auth_handler = hs.get_auth_handler() |
|
|
|
|
self.profile_handler = hs.get_profile_handler() |
|
|
|
|
self.user_directory_handler = hs.get_user_directory_handler() |
|
|
|
|
self._room_creation_handler = hs.get_room_creation_handler() |
|
|
|
|
self._directory_handler = hs.get_handlers().directory_handler |
|
|
|
|
self.captcha_client = CaptchaServerHttpClient(hs) |
|
|
|
|
|
|
|
|
|
self._next_generated_user_id = None |
|
|
|
@ -513,6 +515,22 @@ class RegistrationHandler(BaseHandler): |
|
|
|
|
|
|
|
|
|
@defer.inlineCallbacks |
|
|
|
|
def _join_user_to_room(self, requester, room_identifier): |
|
|
|
|
|
|
|
|
|
# try to create the room if we're the first user on the server |
|
|
|
|
if self.config.autocreate_auto_join_rooms: |
|
|
|
|
count = yield self.store.count_all_users() |
|
|
|
|
if count == 1 and RoomAlias.is_valid(room_identifier): |
|
|
|
|
info = yield self._room_creation_handler.create_room( |
|
|
|
|
requester, |
|
|
|
|
config={ |
|
|
|
|
"preset": "public_chat", |
|
|
|
|
}, |
|
|
|
|
ratelimit=False, |
|
|
|
|
) |
|
|
|
|
room_id = info["room_id"] |
|
|
|
|
|
|
|
|
|
yield create_association(self, requester.user, room_identifier, room_id) |
|
|
|
|
|
|
|
|
|
room_id = None |
|
|
|
|
room_member_handler = self.hs.get_room_member_handler() |
|
|
|
|
if RoomID.is_valid(room_identifier): |
|
|
|
|