aboutsummaryrefslogtreecommitdiff
path: root/modules/line_handler
diff options
context:
space:
mode:
authorGravatar jesopo2019-11-21 15:49:08 +0000
committerGravatar jesopo2019-11-21 15:49:08 +0000
commit2dfc55fb9fa0a6cff1c24895f4c788149c3922a8 (patch)
treed0979ab588a9f3f6bb6f2a2b43911a15eda72664 /modules/line_handler
parentadd a way to execute commands through bitbotd (use for master-password) (diff)
signature
refactor permissions and allow hostmasks to be assigned to accounts
Diffstat (limited to 'modules/line_handler')
-rw-r--r--modules/line_handler/__init__.py4
-rw-r--r--modules/line_handler/channel.py3
-rw-r--r--modules/line_handler/core.py14
-rw-r--r--modules/line_handler/user.py12
4 files changed, 15 insertions, 18 deletions
diff --git a/modules/line_handler/__init__.py b/modules/line_handler/__init__.py
index 5001266c..ddea6fdc 100644
--- a/modules/line_handler/__init__.py
+++ b/modules/line_handler/__init__.py
@@ -218,12 +218,12 @@ class Module(ModuleManager.BaseModule):
# response to a WHO command for user information
@utils.hook("raw.received.352", default_event=True)
def handle_352(self, event):
- core.handle_352(event)
+ core.handle_352(self.events, event)
# response to a WHOX command for user information, including account name
@utils.hook("raw.received.354", default_event=True)
def handle_354(self, event):
- core.handle_354(event)
+ core.handle_354(self.events, event)
# response to an empty mode command
@utils.hook("raw.received.324")
diff --git a/modules/line_handler/channel.py b/modules/line_handler/channel.py
index 385bf6b2..91150839 100644
--- a/modules/line_handler/channel.py
+++ b/modules/line_handler/channel.py
@@ -72,8 +72,7 @@ def join(events, event):
hostname=event["line"].source.hostname)
if account:
- user.identified_account = account
- user.identified_account_id = event["server"].get_user(account).get_id()
+ user.account = account
if realname:
user.realname = realname
diff --git a/modules/line_handler/core.py b/modules/line_handler/core.py
index 607c8dd4..d72bf223 100644
--- a/modules/line_handler/core.py
+++ b/modules/line_handler/core.py
@@ -105,7 +105,7 @@ def invite(events, event):
events.on("received.invite").call(user=user, target_channel=target_channel,
server=event["server"], target_user=target_user)
-def handle_352(event):
+def handle_352(events, event):
nickname = event["line"].args[5]
username = event["line"].args[2]
hostname = event["line"].args[3]
@@ -117,8 +117,10 @@ def handle_352(event):
target = event["server"].get_user(nickname)
target.username = username
target.hostname = hostname
+ events.on("received.who").call(server=event["server"],
+ user=target)
-def handle_354(event):
+def handle_354(events, event):
if event["line"].args[1] == "111":
nickname = event["line"].args[4]
username = event["line"].args[2]
@@ -136,11 +138,11 @@ def handle_354(event):
target.hostname = hostname
target.realname = realname
if not account == "0":
- target.identified_account = account
- target.identified_account_id = event["server"].get_user(account
- ).get_id()
+ target.account = account
else:
- target.identified_account = None
+ target.account = None
+ events.on("received.whox").call(server=event["server"],
+ user=target)
def _nick_in_use(server):
new_nick = "%s|" % server.connection_params.nickname
diff --git a/modules/line_handler/user.py b/modules/line_handler/user.py
index 20521675..d1592cd7 100644
--- a/modules/line_handler/user.py
+++ b/modules/line_handler/user.py
@@ -39,6 +39,8 @@ def nick(events, event):
new_nickname = event["line"].args.get(0)
user = event["server"].get_user(event["line"].source.nickname)
old_nickname = user.nickname
+ user.set_nickname(new_nickname)
+ event["server"].change_user_nickname(old_nickname, new_nickname)
if not event["server"].is_own_nickname(event["line"].source.nickname):
events.on("received.nick").call(new_nickname=new_nickname,
@@ -48,9 +50,6 @@ def nick(events, event):
new_nickname=new_nickname, old_nickname=old_nickname)
event["server"].set_own_nickname(new_nickname)
- user.set_nickname(new_nickname)
- event["server"].change_user_nickname(old_nickname, new_nickname)
-
def away(events, event):
user = event["server"].get_user(event["line"].source.nickname)
message = event["line"].args.get(0)
@@ -94,13 +93,10 @@ def account(events, event):
user = event["server"].get_user(event["line"].source.nickname)
if not event["line"].args[0] == "*":
- user.identified_account = event["line"].args[0]
- user.identified_account_id = event["server"].get_user(
- event["line"].args[0]).get_id()
+ user.account = event["line"].args[0]
events.on("received.account.login").call(user=user,
server=event["server"], account=event["line"].args[0])
else:
- user.identified_account = None
- user.identified_account_id = None
+ user.account = None
events.on("received.account.logout").call(user=user,
server=event["server"])