mirror of
https://github.com/evennia/evennia.git
synced 2026-04-03 06:27:17 +02:00
63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
from django.contrib.auth.models import User
|
|
import functions_db
|
|
|
|
"""
|
|
Commands that are available from the connect screen.
|
|
"""
|
|
|
|
def cmd_connect(cdat):
|
|
"""
|
|
This is the connect command at the connection screen. Fairly simple,
|
|
uses the Django database API and User model to make it extremely simple.
|
|
"""
|
|
session = cdat['session']
|
|
uname = cdat['uinput']['splitted'][1]
|
|
password = cdat['uinput']['splitted'][2]
|
|
|
|
account = User.objects.filter(username__iexact=uname)
|
|
|
|
autherror = "Invalid username or password!"
|
|
# No username match
|
|
if account.count() == 0:
|
|
session.msg(autherror)
|
|
return
|
|
|
|
# We have at least one result, so we can check hte password.
|
|
user = account[0]
|
|
|
|
if not user.check_password(password):
|
|
session.msg(autherror)
|
|
else:
|
|
user = account[0]
|
|
uname = user.username
|
|
session.login(user)
|
|
|
|
def cmd_create(cdat):
|
|
"""
|
|
Handle the creation of new accounts.
|
|
"""
|
|
session = cdat['session']
|
|
server = session.server
|
|
uname = cdat['uinput']['splitted'][1]
|
|
email = cdat['uinput']['splitted'][2]
|
|
password = cdat['uinput']['splitted'][3]
|
|
|
|
# Search for a user object with the specified username.
|
|
account = User.objects.filter(username=uname)
|
|
|
|
if not account.count() == 0:
|
|
session.msg("There is already a player with that name!")
|
|
elif len(password) < 3:
|
|
session.msg("Your password must be 3 characters or longer.")
|
|
else:
|
|
functions_db.create_user(cdat, uname, email, password)
|
|
|
|
def cmd_quit(cdat):
|
|
"""
|
|
We're going to maintain a different version of the quit command
|
|
here for unconnected users for the sake of simplicity. The logged in
|
|
version will be a bit more complicated.
|
|
"""
|
|
session = cdat['session']
|
|
session.msg("Disconnecting...")
|
|
session.handle_close()
|