diff options
| author | 2019-06-16 20:48:31 +0100 | |
|---|---|---|
| committer | 2019-06-16 20:48:31 +0100 | |
| commit | ced59a0f74caa575a12c6e72843d497d1f8c092e (patch) | |
| tree | daeda0274452074882c29c0919596237edd20cfc /modules | |
| parent | Support 'channel-access' check request referencing current channel (diff) | |
| signature | ||
Allow channel-access and channel-mode check for channels people are not in
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/config.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/modules/config.py b/modules/config.py index d48480c7..18a16c56 100644 --- a/modules/config.py +++ b/modules/config.py @@ -39,6 +39,10 @@ class ConfigChannelTarget(object): channel_id = self._get_id() self._bot.database.channel_settings.delete(channel_id, setting) + def get_user_setting(self, user_id, setting, default=None): + return self.bot.database.user_channel_settings.get(user_id, + self._get_id(), setting, default) + class Module(ModuleManager.BaseModule): def _to_context(self, server, channel, user, context_desc): context_desc_lower = context_desc.lower() @@ -144,22 +148,22 @@ class Module(ModuleManager.BaseModule): target = event["user"] elif context == "channelset": if name: - event["check_assert"](permission_check) - if name in event["server"].channels: target = event["server"].channels.get(name) else: + event["check_assert"] target = ConfigChannelTarget(self.bot, event["server"], name) else: if event["is_channel"]: - event["check_assert"]( - utils.Check("channel-mode", "o")|permission_check) target = event["target"] else: raise utils.EventError( "Cannot change config for current channel when in " "private message") + event["check_assert"](permission_check| + utils.Check("channel-access", "set")| + utils.Check("channel-mode", "o")) elif context == "serverset" or context == "botset": event["check_assert"](permission_check) |
