mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-08-08 03:32:12 -04:00
Add configurable room list publishing rules
This allows specifying who and what is allowed to be published onto the public room list
This commit is contained in:
parent
c6e75c9f2d
commit
eaf4d11af9
5 changed files with 200 additions and 22 deletions
|
@ -36,6 +36,8 @@ class RoomDirectoryConfigTestCase(unittest.TestCase):
|
|||
- user_id: "@gah:example.com"
|
||||
alias: "#goo:example.com"
|
||||
action: "allow"
|
||||
|
||||
room_list_publication_rules: []
|
||||
""")
|
||||
|
||||
rd_config = RoomDirectoryConfig()
|
||||
|
@ -43,25 +45,96 @@ class RoomDirectoryConfigTestCase(unittest.TestCase):
|
|||
|
||||
self.assertFalse(rd_config.is_alias_creation_allowed(
|
||||
user_id="@bob:example.com",
|
||||
room_id="!test",
|
||||
alias="#test:example.com",
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_alias_creation_allowed(
|
||||
user_id="@test:example.com",
|
||||
room_id="!test",
|
||||
alias="#unofficial_st:example.com",
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_alias_creation_allowed(
|
||||
user_id="@foobar:example.com",
|
||||
room_id="!test",
|
||||
alias="#test:example.com",
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_alias_creation_allowed(
|
||||
user_id="@gah:example.com",
|
||||
room_id="!test",
|
||||
alias="#goo:example.com",
|
||||
))
|
||||
|
||||
self.assertFalse(rd_config.is_alias_creation_allowed(
|
||||
user_id="@test:example.com",
|
||||
room_id="!test",
|
||||
alias="#test:example.com",
|
||||
))
|
||||
|
||||
def test_room_publish_acl(self):
|
||||
config = yaml.load("""
|
||||
alias_creation_rules: []
|
||||
|
||||
room_list_publication_rules:
|
||||
- user_id: "*bob*"
|
||||
alias: "*"
|
||||
action: "deny"
|
||||
- user_id: "*"
|
||||
alias: "#unofficial_*"
|
||||
action: "allow"
|
||||
- user_id: "@foo*:example.com"
|
||||
alias: "*"
|
||||
action: "allow"
|
||||
- user_id: "@gah:example.com"
|
||||
alias: "#goo:example.com"
|
||||
action: "allow"
|
||||
- room_id: "!test-deny"
|
||||
action: "deny"
|
||||
""")
|
||||
|
||||
rd_config = RoomDirectoryConfig()
|
||||
rd_config.read_config(config)
|
||||
|
||||
self.assertFalse(rd_config.is_publishing_room_allowed(
|
||||
user_id="@bob:example.com",
|
||||
room_id="!test",
|
||||
aliases=["#test:example.com"],
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_publishing_room_allowed(
|
||||
user_id="@test:example.com",
|
||||
room_id="!test",
|
||||
aliases=["#unofficial_st:example.com"],
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_publishing_room_allowed(
|
||||
user_id="@foobar:example.com",
|
||||
room_id="!test",
|
||||
aliases=[],
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_publishing_room_allowed(
|
||||
user_id="@gah:example.com",
|
||||
room_id="!test",
|
||||
aliases=["#goo:example.com"],
|
||||
))
|
||||
|
||||
self.assertFalse(rd_config.is_publishing_room_allowed(
|
||||
user_id="@test:example.com",
|
||||
room_id="!test",
|
||||
aliases=["#test:example.com"],
|
||||
))
|
||||
|
||||
self.assertTrue(rd_config.is_publishing_room_allowed(
|
||||
user_id="@foobar:example.com",
|
||||
room_id="!test-deny",
|
||||
aliases=[],
|
||||
))
|
||||
|
||||
self.assertFalse(rd_config.is_publishing_room_allowed(
|
||||
user_id="@gah:example.com",
|
||||
room_id="!test-deny",
|
||||
aliases=[],
|
||||
))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue