Updated contribs/menu_login

This commit is contained in:
delizin 2014-02-01 18:21:28 -05:00
parent 18f60b0b33
commit dbceeb3e98

View file

@ -36,6 +36,7 @@ from ev import managers
from ev import utils, logger, create_player from ev import utils, logger, create_player
from ev import Command, CmdSet from ev import Command, CmdSet
from ev import syscmdkeys from ev import syscmdkeys
from src.server.models import ServerConfig
from contrib.menusystem import MenuNode, MenuTree from contrib.menusystem import MenuNode, MenuTree
@ -118,27 +119,27 @@ class CmdPasswordSelect(Command):
self.menutree.goto("node1a") self.menutree.goto("node1a")
return return
player = self.menutree.player player = self.menutree.player
if not player.user.check_password(self.args): if not player.check_password(self.args):
self.caller.msg("{rIncorrect password.{n") self.caller.msg("{rIncorrect password.{n")
self.menutree.goto("node1b") self.menutree.goto("node1b")
return return
# before going on, check eventual bans # before going on, check eventual bans
bans = managers.serverconfigs.conf("server_bans") bans = ServerConfig.objects.conf("server_bans")
if bans and (any(tup[0] == player.name for tup in bans) if bans and (any(tup[0]==player.name for tup in bans)
or or
any(tup[2].match(player.sessions[0].address[0]) any(tup[2].match(self.caller.address[0]) for tup in bans if tup[2])):
for tup in bans if tup[2])):
# this is a banned IP or name! # this is a banned IP or name!
string = "{rYou have been banned and cannot continue from here." string = "{rYou have been banned and cannot continue from here."
string += "\nIf you feel this ban is in error, please email an admin.{x" string += "\nIf you feel this ban is in error, please email an admin.{x"
self.caller.msg(string) self.caller.msg(string)
self.caller.session_disconnect() self.caller.sessionhandler.disconnect(self.caller, "Good bye! Disconnecting...")
return return
# we are ok, log us in. # we are ok, log us in.
self.caller.msg("{gWelcome %s! Logging in ...{n" % player.key) self.caller.msg("{gWelcome %s! Logging in ...{n" % player.key)
self.caller.session_login(player) #self.caller.session_login(player)
self.caller.sessionhandler.login(self.caller, player)
# abort menu, do cleanup. # abort menu, do cleanup.
self.menutree.goto("END") self.menutree.goto("END")
@ -221,8 +222,7 @@ class CmdPasswordCreate(Command):
typeclass = settings.BASE_PLAYER_TYPECLASS typeclass = settings.BASE_PLAYER_TYPECLASS
new_player = create_player(playername, None, password, new_player = create_player(playername, None, password,
typeclass=typeclass, typeclass=typeclass,
permissions=permissions, permissions=permissions)
create_character=False)
if not new_player: if not new_player:
self.msg("There was an error creating the Player. This error was logged. Contact an admin.") self.msg("There was an error creating the Player. This error was logged. Contact an admin.")
self.menutree.goto("START") self.menutree.goto("START")
@ -292,8 +292,7 @@ class CmdUnloggedinQuit(Command):
def func(self): def func(self):
"Simply close the connection." "Simply close the connection."
self.menutree.goto("END") self.menutree.goto("END")
self.caller.msg("Good bye! Disconnecting ...") self.caller.sessionhandler.disconnect(self.caller, "Good bye! Disconnecting...")
self.caller.session_disconnect()
# The login menu tree, using the commands above # The login menu tree, using the commands above
@ -356,7 +355,7 @@ class CmdUnloggedinLook(Command):
to the menu's own look command.. to the menu's own look command..
""" """
key = CMD_LOGINSTART key = CMD_LOGINSTART
aliases = ["look", "l"] # aliases = ["dook", "d"]
locks = "cmd:all()" locks = "cmd:all()"
def func(self): def func(self):
@ -364,4 +363,4 @@ class CmdUnloggedinLook(Command):
menu = MenuTree(self.caller, nodes=(START, node1a, node1b, menu = MenuTree(self.caller, nodes=(START, node1a, node1b,
node2a, node2b, node3), node2a, node2b, node3),
exec_end=None) exec_end=None)
menu.start() menu.start()