Skip to content

Commit

Permalink
filters.py: Filter required users
Browse files Browse the repository at this point in the history
If RESP_ONLY_REQ_USERS configuration is true,
then stop responding to users other than those
in the REQUIRED_USERS list in config.

Closes coala#515
  • Loading branch information
Vamshi99 committed Aug 21, 2018
1 parent ce9cf18 commit c9d6cf1
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
4 changes: 4 additions & 0 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@
IGNORE_USERNAMES = os.environ.get("IGNORE_USERNAMES",
'co-robo coala-bot').split()

RESP_ONLY_REQ_USERS = False

REQUIRED_USERS = []

DIVERT_TO_PRIVATE = ('help', )

ROOMS_TO_JOIN = (
Expand Down
14 changes: 14 additions & 0 deletions tests/filters_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from tests.isolated_testcase import IsolatedTestCase


class FiltersTest(IsolatedTestCase):

def test_filter_users(self):
self.bot_config.RESP_ONLY_REQ_USERS = False
self.bot_config.REQUIRED_USERS = []
self.assertCommand('!help', 'All commands')
self.bot_config.RESP_ONLY_REQ_USERS = False
self.bot_config.REQUIRED_USERS = ['testuser']
self.bot_config.BOT_IDENTITY['nickname'] = 'testuser'
with self.assertRaises(queue.Empty):
self.assertCommand('!help', 'All commands')
5 changes: 4 additions & 1 deletion utils/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ def filters(self, msg, cmd, args, dry_run):
return msg, cmd, args

@cmdfilter
def filter_ignored_users(self, msg, cmd, args, dry_run):
def filter_users(self, msg, cmd, args, dry_run):
if msg.frm.nick in self.bot_config.IGNORE_USERNAMES:
return None, None, None
if (msg.frm.nick not in self.bot_config.REQUIRED_USERS and
self.bot_config.RESP_ONLY_REQ_USER):
return None, None, None
return msg, cmd, args

0 comments on commit c9d6cf1

Please sign in to comment.