| @@ -0,0 +1,70 @@ | |||||
| from models.database import db | |||||
| def get_users(): | |||||
| """ | |||||
| Retreive all registrered users from the database | |||||
| :return: users | |||||
| """ | |||||
| db.connect() | |||||
| cursor = db.cursor() | |||||
| query = ("SELECT userid, username from users") | |||||
| cursor.execute(query) | |||||
| users = cursor.fetchall() | |||||
| cursor.close() | |||||
| return users | |||||
| def get_user_id_by_name(username): | |||||
| """ | |||||
| Get the id of the unique username | |||||
| :param username: Name of the user | |||||
| :return: The id of the user | |||||
| """ | |||||
| db.connect() | |||||
| cursor = db.cursor() | |||||
| query = ("SELECT userid from users WHERE username =\"" + username + "\"") | |||||
| cursor.execute(query) | |||||
| try: | |||||
| userid = cursor.fetchall()[0][0] | |||||
| except: | |||||
| userid = None | |||||
| cursor.close() | |||||
| return userid | |||||
| def get_user_name_by_id(userid): | |||||
| """ | |||||
| Get username from user id | |||||
| :param userid: The id of the user | |||||
| :return: The name of the user | |||||
| """ | |||||
| db.connect() | |||||
| cursor = db.cursor() | |||||
| query = ("SELECT username from users WHERE userid =\"" + userid + "\"") | |||||
| cursor.execute(query) | |||||
| try: | |||||
| username = cursor.fetchall()[0][0] | |||||
| except: | |||||
| username = None | |||||
| cursor.close() | |||||
| return username | |||||
| def match_user(username, password): | |||||
| """ | |||||
| Check if user credentials are correct, return if exists | |||||
| :param username: The user attempting to authenticate | |||||
| :param password: The corresponding password | |||||
| :type username: str | |||||
| :type password: str | |||||
| :return: user | |||||
| """ | |||||
| db.connect() | |||||
| cursor = db.cursor() | |||||
| query = ("SELECT userid, username from users where username = \"" + username + | |||||
| "\" and password = \"" + password + "\"") | |||||
| cursor.execute(query) | |||||
| try: | |||||
| user = cursor.fetchall()[0] | |||||
| except: | |||||
| user = None | |||||
| cursor.close() | |||||
| return user | |||||
| @@ -4,7 +4,6 @@ from views.utils import get_nav_bar | |||||
| from views.login import Login | from views.login import Login | ||||
| from views.logout import Logout | from views.logout import Logout | ||||
| from views.register import Register | from views.register import Register | ||||
| from views.admin import Admin | |||||
| from views.new_project import New_project | from views.new_project import New_project | ||||
| from views.open_projects import Open_projects | from views.open_projects import Open_projects | ||||
| from views.project import Project | from views.project import Project | ||||
| @@ -20,7 +19,6 @@ urls = ( | |||||
| '/new_project', 'New_project', | '/new_project', 'New_project', | ||||
| '/open_projects', 'Open_projects', | '/open_projects', 'Open_projects', | ||||
| '/project', 'Project', | '/project', 'Project', | ||||
| '/admin', 'Admin', | |||||
| '/apply', 'Apply', | '/apply', 'Apply', | ||||
| ) | ) | ||||
| @@ -1,6 +1,6 @@ | |||||
| import web | import web | ||||
| import models.project | import models.project | ||||
| from models.login import get_user_name_by_id | |||||
| from models.user import get_user_name_by_id | |||||
| from views.utils import get_nav_bar, get_element_count | from views.utils import get_nav_bar, get_element_count | ||||
| from views.forms import get_apply_form, get_apply_permissions_form | from views.forms import get_apply_form, get_apply_permissions_form | ||||
| @@ -1,6 +1,6 @@ | |||||
| from web import form | from web import form | ||||
| from models.project import get_categories | from models.project import get_categories | ||||
| from models.login import get_users, get_user_id_by_name | |||||
| from models.user import get_users, get_user_id_by_name | |||||
| # Regex for input validation | # Regex for input validation | ||||
| @@ -1,6 +1,6 @@ | |||||
| import web | import web | ||||
| from views.forms import login_form | from views.forms import login_form | ||||
| import models.login | |||||
| import models.user | |||||
| from views.utils import get_nav_bar | from views.utils import get_nav_bar | ||||
| import os, hmac, base64, pickle | import os, hmac, base64, pickle | ||||
| import hashlib | import hashlib | ||||
| @@ -39,7 +39,7 @@ class Login(): | |||||
| # Validate login credential with database query | # Validate login credential with database query | ||||
| password_hash = hashlib.md5(b'TDT4237' + data.password.encode('utf-8')).hexdigest() | password_hash = hashlib.md5(b'TDT4237' + data.password.encode('utf-8')).hexdigest() | ||||
| user = models.login.match_user(data.username, password_hash) | |||||
| user = models.user.match_user(data.username, password_hash) | |||||
| # If there is a matching user/password in the database the user is logged in | # If there is a matching user/password in the database the user is logged in | ||||
| if user: | if user: | ||||
| @@ -81,7 +81,7 @@ class Login(): | |||||
| # If the users signed cookie matches the host signature then log in | # If the users signed cookie matches the host signature then log in | ||||
| if self.sign_username(username) == sign: | if self.sign_username(username) == sign: | ||||
| userid = models.login.get_user_id_by_name(username) | |||||
| userid = models.user.get_user_id_by_name(username) | |||||
| self.login(username, userid, False) | self.login(username, userid, False) | ||||
| def rememberme(self): | def rememberme(self): | ||||
| @@ -2,7 +2,7 @@ import web | |||||
| from web import form | from web import form | ||||
| from views.forms import get_task_form_elements, get_project_form_elements, get_user_form_elements, project_buttons | from views.forms import get_task_form_elements, get_project_form_elements, get_user_form_elements, project_buttons | ||||
| import models.project | import models.project | ||||
| import models.login | |||||
| import models.user | |||||
| from views.utils import get_nav_bar, get_element_count | from views.utils import get_nav_bar, get_element_count | ||||
| # Get html templates | # Get html templates | ||||
| @@ -74,7 +74,7 @@ class New_project: | |||||
| # Validate the input user names | # Validate the input user names | ||||
| for i in range(0, user_count): | for i in range(0, user_count): | ||||
| if len(data["user_name_"+str(i)]) and not models.login.get_user_id_by_name(data["user_name_"+str(i)]): | |||||
| if len(data["user_name_"+str(i)]) and not models.user.get_user_id_by_name(data["user_name_"+str(i)]): | |||||
| return render.new_project(nav, project_form, project_buttons, "Invalid user: " + data["user_name_"+str(i)]) | return render.new_project(nav, project_form, project_buttons, "Invalid user: " + data["user_name_"+str(i)]) | ||||
| # Save the project to the database | # Save the project to the database | ||||
| @@ -89,7 +89,7 @@ class New_project: | |||||
| # Save the users in the database given that the input field is not empty | # Save the users in the database given that the input field is not empty | ||||
| for i in range(0, user_count): | for i in range(0, user_count): | ||||
| if len(data["user_name_"+str(i)]): | if len(data["user_name_"+str(i)]): | ||||
| userid = models.login.get_user_id_by_name(data["user_name_"+str(i)]) | |||||
| userid = models.user.get_user_id_by_name(data["user_name_"+str(i)]) | |||||
| read, write, modify = "FALSE", "FALSE", "FALSE" | read, write, modify = "FALSE", "FALSE", "FALSE" | ||||
| try: | try: | ||||
| data["read_permission_"+str(i)] | data["read_permission_"+str(i)] | ||||
| @@ -1,7 +1,7 @@ | |||||
| import web | import web | ||||
| from views.forms import register_form | from views.forms import register_form | ||||
| import models.register | import models.register | ||||
| import models.login | |||||
| import models.user | |||||
| from views.utils import get_nav_bar | from views.utils import get_nav_bar | ||||
| import hashlib | import hashlib | ||||
| import re | import re | ||||
| @@ -37,7 +37,7 @@ class Register: | |||||
| return render.register(nav, register, "All fields must be valid.") | return render.register(nav, register, "All fields must be valid.") | ||||
| # Check if user exists | # Check if user exists | ||||
| if models.login.get_user_id_by_name(data.username): | |||||
| if models.user.get_user_id_by_name(data.username): | |||||
| return render.register(nav, register, "Invalid user, already exists.") | return render.register(nav, register, "Invalid user, already exists.") | ||||
| models.register.set_user(data.username, | models.register.set_user(data.username, | ||||