jakobsn преди 6 години
родител
ревизия
da4c66cc46
променени са 3 файла, в които са добавени 47 реда и са изтрити 38 реда
  1. +5
    -2
      src/app/models/login.py
  2. +1
    -1
      src/app/templates/login.html
  3. +41
    -35
      src/app/views/login.py

+ 5
- 2
src/app/models/login.py Целия файл

@@ -27,7 +27,10 @@ def get_user_name_by_id(userid):
cursor = db.cursor()
query = ("SELECT username from users WHERE userid =\"" + userid + "\"")
cursor.execute(query)
username = cursor.fetchall()[0][0]
try:
username = cursor.fetchall()[0][0]
except:
username = None
cursor.close()
return username

@@ -45,6 +48,6 @@ def match_user(username, password):
query = ("SELECT userid, username from users where username = \"" + username +
"\" and password = \"" + password + "\"")
cursor.execute(query)
user = cursor.fetchall()
user = cursor.fetchall()[0]
cursor.close()
return user

+ 1
- 1
src/app/templates/login.html Целия файл

@@ -1,4 +1,4 @@
$def with (nav, login_form, friends)
$def with (nav, login_form)

<head>
<title>Beelance2</title>


+ 41
- 35
src/app/views/login.py Целия файл

@@ -21,9 +21,48 @@ class Login():
:return: The login page showing other users if logged in
"""
session = web.ctx.session
nav = get_nav_bar(session)

# Log the user in if the rememberme cookie is set and valid
self.check_rememberme()

return render.login(nav, login_form)

def POST(self):
"""
Log in to the web application and register the session
:return: The login page showing other users if logged in
"""
session = web.ctx.session
nav = get_nav_bar(session)
data = web.input(username="", password="", remember=False)

# Validate login credential with database query
password_hash = hashlib.md5(b'TDT4237' + data.password.encode('utf-8')).hexdigest()
user = models.login.match_user(data.username, password_hash)

# If there is a matching user/password in the database the user is logged in
self.login(user[1], user[0], data.remember)
return render.login(nav, login_form)

def login(self, username, userid, remember):
"""
Log in to the application
"""
session = web.ctx.session
session.username = username
session.userid = userid
if remember:
rememberme = self.rememberme()
web.setcookie('remember', rememberme , 12000000)

def check_rememberme(self):
"""
Validate the rememberme cookie and log in
"""
username = ""
sign = ""
# If the user selected 'remember me' they log in automatically
try:
# Fetch the users cookies if it exists
@@ -41,40 +80,7 @@ class Login():
# If the users signed cookie matches the host signature then log in
if self.sign_username(username) == sign:
userid = models.login.get_user_id_by_name(username)
session.username = username
session.userid = userid

# Show a list of registered users when login in
if session.username:
friends = models.login.get_users()
else:
friends = [[],[]]
nav = get_nav_bar(session)

return render.login(nav, login_form, friends)

def POST(self):
"""
Log in to the web application and register the session
:return: The login page showing other users if logged in
"""
session = web.ctx.session
friends = [[],[]]
# Validate login credential with database query
data = web.input(username="", password="")
password_hash = hashlib.md5(b'TDT4237' + data.password.encode('utf-8')).hexdigest()
print("hash", password_hash)
user = models.login.match_user(data.username, password_hash)
# If there is a matching user/password in the database the user is logged in
if len(user):
friends = models.login.get_users()
session.username = user[0][1]
session.userid = user[0][0]
if data.remember:
remember = self.rememberme()
web.setcookie('remember', remember , 12000000)
nav = get_nav_bar(session)
return render.login(nav, login_form, friends)
self.login(username, userid, False)

def rememberme(self):
"""


Loading…
Отказ
Запис