aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-03 11:30:54 +0100
committerGravatar jesopo2018-09-03 11:30:54 +0100
commit6a627d9f3697d2333e9299a80a45b5e9a96eb4a0 (patch)
tree5e525401e23e9f859e545f71b6c645cdd5fca910
parentSend CAP END when we're not waiting for any capability handshakes (diff)
signature
Added !resetpassword in permissions.py
-rw-r--r--modules/permissions.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/modules/permissions.py b/modules/permissions.py
index 63012f3b..3ec8a04c 100644
--- a/modules/permissions.py
+++ b/modules/permissions.py
@@ -11,6 +11,7 @@ class Module(object):
events.on("preprocess").on("command").hook(
self.preprocess_command)
events.on("received").on("part").hook(self.on_part)
+
events.on("received").on("command").on("identify"
).hook(self.identify, private_only=True, min_args=1,
usage="<password>", help="Identify yourself")
@@ -19,6 +20,10 @@ class Module(object):
usage="<password>", help="Register your nickname")
events.on("received.command.logout").hook(self.logout,
private_only=True, help="Sign out from the bot")
+ events.on("received.command.resetpassword").hook(
+ self.reset_password, private_only=True,
+ help="Reset a user's password", min_args=2,
+ usage="<nickname> <password>", permission="resetpassword")
events.on("received.command.mypermissions").hook(
self.my_permissions, authenticated=True)
@@ -92,6 +97,19 @@ class Module(object):
else:
event["stderr"].write("You are not logged in")
+ def reset_password(self, event):
+ target = event["server"].get_user(event["args_split"][0])
+ password = " ".join(event["args_split"][1:])
+ registered = target.get_setting("authentication", None)
+
+ if registered == None:
+ event["stderr"].write("'%s' isn't registered" % target.nickname)
+ else:
+ hash, salt = self._make_hash(password)
+ target.set_setting("authentication", [hash, salt])
+ event["stdout"].write("Reset password for '%s'" %
+ target.nickname)
+
def preprocess_command(self, event):
authentication = event["user"].get_setting("authentication", None)
permission = event["hook"].kwargs.get("permission", None)