summaryrefslogtreecommitdiff
path: root/loginsecurity.py
diff options
context:
space:
mode:
authorPanFritz <redstonenoobpan@gmail.com>2015-07-08 01:39:02 +0200
committerPanFritz <redstonenoobpan@gmail.com>2015-07-08 01:39:02 +0200
commit5f8ba18e538b7d2107b2a4dabbbcef9460af5b43 (patch)
treed24f952100173c102bd2ddf4111d57fa1f220147 /loginsecurity.py
parentb67d3efbb48a52a5f4440481a46ceebd7dbd647b (diff)
Threaded password verifying, removed some checks
Diffstat (limited to 'loginsecurity.py')
-rw-r--r--loginsecurity.py38
1 files changed, 24 insertions, 14 deletions
diff --git a/loginsecurity.py b/loginsecurity.py
index d62d945..0a4b6f7 100644
--- a/loginsecurity.py
+++ b/loginsecurity.py
@@ -12,15 +12,27 @@ import subprocess
wait_time = 5 #seconds
admin_perm = "utils.loginsecurity.admin"
min_pass_length = 8
-blocked_events = ["block.BlockBreakEvent", "block.BlockPlaceEvent", "player.PlayerMoveEvent"]
+blocked_events = ["block.BlockBreakEvent", "block.BlockPlaceEvent", "player.PlayerMoveEvent","player.AsyncPlayerChatEvent","player.InteractEntityEvent"]
logging_in = {}
-def matches(password, user):
+matches_bool = False
+
+def matches(password,user):
+ thread = threading.Thread(target=matches_thread, args = (password,user))
+ thread.start()
+
+
+def matches_thread(password, user):
hashed = get_pass(uid(user))
- return crypt.verify(password, hashed)
+ if crypt.verify(password, hashed):
+ del logging_in[user.getName()]
+ msg(user, "&aLogged in successfully!")
+ else:
+ msg(user, "&cInvalid password")
+
@simplecommand("cgpass",
usage = "<password> <new password>",
@@ -34,10 +46,8 @@ def change_pass_command(sender, command, label, args):
new_password = args[1]
uuid = uid(sender)
if is_registered(uuid):
- if matches(password, sender):
- change_pass(uuid, crypt.encrypt(new_password, rounds=200000, salt_size=16))
- return "&aPassword changed"
- return "&cInvalid password!"
+ change_pass(uuid, crypt.encrypt(new_password, rounds=200000, salt_size=16))
+ return "&aPassword changed"
return "&cYou are not registered"
@simplecommand("login",
@@ -47,10 +57,10 @@ def change_pass_command(sender, command, label, args):
helpNoargs = True)
def login_command(sender, command, label, args):
password = args[0]
- if matches(password, sender):
- del logging_in[sender.getName()]
- return "&aLogged in successfully!"
- return "&cInvalid password"
+ matches(password, sender):
+ #del logging_in[sender.getName()]
+ #return "&aLogged in successfully!"
+ #return "&cInvalid password"
@simplecommand("register",
usage = "<password>",
@@ -78,10 +88,10 @@ def rmpass_command(sender, command, label, args):
if not is_registered(uid(sender)):
return "&cYou are not registered!"
password = " ".join(args)
- if matches(password, sender):
+ if sender.getName() in logging_in:
delete_pass(uid(sender))
return "&aPassword removed successfully. You will not be prompted anymore."
- return "&cInvalid password"
+ return "&cFailed to remove password, please contact a staff member"
@simplecommand("rmotherpass",
aliases = ["lacrmpass"],
@@ -153,6 +163,7 @@ def on_join(event):
user = event.getPlayer()
if is_registered(uid(user)):
msg(event.getPlayer(), "&6You will be disconnected after 60 seconds if you don't &alogin")
+ msg(user, "&cUse /login <password>")
logging_in[user.getName()] = time.time()
@@ -196,4 +207,3 @@ for blocked_event in blocked_events:
user = event.getPlayer()
if user.getName() in logging_in:
event.setCancelled(True)
- msg(user, "&cYou have to log in first! Use /login <password>")