Add internal admin list to bypass room permission checks

Pending maubot-wide access controls
This commit is contained in:
Tulir Asokan 2018-11-29 01:37:57 +02:00
parent b3d4482c3c
commit b28f20da92
2 changed files with 6 additions and 0 deletions

View File

@ -5,3 +5,6 @@ update_interval: 60
spam_sleep: 2 spam_sleep: 2
# The prefix for all commands # The prefix for all commands
command_prefix: "!rss" command_prefix: "!rss"
# Users who can bypass room permission checks
admins:
- "@user:example.com"

View File

@ -34,6 +34,7 @@ class Config(BaseProxyConfig):
helper.copy("update_interval") helper.copy("update_interval")
helper.copy("spam_sleep") helper.copy("spam_sleep")
helper.copy("command_prefix") helper.copy("command_prefix")
helper.copy("admins")
CommandHandler = Callable[[MessageEvent, str, List[str]], Awaitable[None]] CommandHandler = Callable[[MessageEvent, str, List[str]], Awaitable[None]]
@ -181,6 +182,8 @@ class RSSBot(Plugin):
return levels return levels
async def can_manage(self, evt: MessageEvent) -> bool: async def can_manage(self, evt: MessageEvent) -> bool:
if evt.sender in self.config["admins"]:
return True
levels = await self.get_power_levels(evt.room_id) levels = await self.get_power_levels(evt.room_id)
if levels.get_user_level(evt.sender) < levels.state_default: if levels.get_user_level(evt.sender) < levels.state_default:
await evt.reply("You don't the permission to manage the subscriptions of this room.") await evt.reply("You don't the permission to manage the subscriptions of this room.")