Rename store_room()'s is_public parameter to published; default it from the badly-named "visiblity" parameter but allow a new "published" to override it

This commit is contained in:
Paul "LeoNerd" Evans 2015-06-18 14:27:23 +01:00
parent 7c5315b1a8
commit a197d2492f
4 changed files with 19 additions and 10 deletions

View file

@ -189,7 +189,7 @@ class FederationHandler(BaseHandler):
yield self.store.store_room(
room_id=event.room_id,
room_creator_user_id="",
is_public=False,
published=False,
)
except StoreError:
logger.exception("Failed to store room.")
@ -594,7 +594,7 @@ class FederationHandler(BaseHandler):
yield self.store.store_room(
room_id=room_id,
room_creator_user_id="",
is_public=False
published=False,
)
except:
# FIXME

View file

@ -77,6 +77,14 @@ class RoomCreationHandler(BaseHandler):
is_public = config.get("visibility", None) == "public"
# By default, all public-joinable rooms are published. Allow overriding
# that decision.
# TODO(paul): Specify 'published' key
if "published" in config:
published = config["published"]
else:
published = is_public
if room_id:
# Ensure room_id is the correct type
room_id_obj = RoomID.from_string(room_id)
@ -86,7 +94,7 @@ class RoomCreationHandler(BaseHandler):
yield self.store.store_room(
room_id=room_id,
room_creator_user_id=user_id,
is_public=is_public
published=published,
)
else:
# autogen room IDs and try to create it. We may clash, so just
@ -103,7 +111,7 @@ class RoomCreationHandler(BaseHandler):
yield self.store.store_room(
room_id=gen_room_id.to_string(),
room_creator_user_id=user_id,
is_public=is_public
published=published,
)
room_id = gen_room_id.to_string()
break

View file

@ -34,14 +34,14 @@ OpsLevel = collections.namedtuple(
class RoomStore(SQLBaseStore):
@defer.inlineCallbacks
def store_room(self, room_id, room_creator_user_id, is_public):
def store_room(self, room_id, room_creator_user_id, published):
"""Stores a room.
Args:
room_id (str): The desired room ID, can be None.
room_creator_user_id (str): The user ID of the room creator.
is_public (bool): True to indicate that this room should appear in
public room lists.
published (bool): True to indicate that this room should appear in
published room lists.
Raises:
StoreError if the room could not be stored.
"""
@ -51,7 +51,8 @@ class RoomStore(SQLBaseStore):
{
"room_id": room_id,
"creator": room_creator_user_id,
"is_public": is_public,
# TODO(paul): rename this table in the SQL schema
"is_public": published,
},
desc="store_room",
)

View file

@ -39,7 +39,7 @@ class RoomStoreTestCase(unittest.TestCase):
yield self.store.store_room(self.room.to_string(),
room_creator_user_id=self.u_creator.to_string(),
is_public=True
published=True,
)
@defer.inlineCallbacks
@ -91,7 +91,7 @@ class RoomEventsStoreTestCase(unittest.TestCase):
yield self.store.store_room(self.room.to_string(),
room_creator_user_id="@creator:text",
is_public=True
published=False,
)
@defer.inlineCallbacks