Compare commits
2 Commits
b2ce867b7d
...
f7d2285e74
Author | SHA1 | Date | |
---|---|---|---|
f7d2285e74 | |||
85ec0e1a4e |
Binary file not shown.
@ -56,12 +56,14 @@ def register_leader() -> flask.Response:
|
|||||||
-1,
|
-1,
|
||||||
mail=mail,
|
mail=mail,
|
||||||
team_id=team_id,
|
team_id=team_id,
|
||||||
|
team_leader=1,
|
||||||
**request_data,
|
**request_data,
|
||||||
))
|
))
|
||||||
user_id = utils.UserHandler.get_user_by_mail(mail).user_id
|
user_id = utils.UserHandler.get_user_by_mail(mail).user_id
|
||||||
flask.session.pop("mail")
|
flask.session.pop("mail")
|
||||||
flask.session["user_id"] = user_id
|
flask.session["user_id"] = user_id
|
||||||
except (TypeError, KeyError):
|
except (TypeError, KeyError) as e:
|
||||||
|
print(e)
|
||||||
return flask.Response("Something is missing", 422)
|
return flask.Response("Something is missing", 422)
|
||||||
except sqlite3.IntegrityError:
|
except sqlite3.IntegrityError:
|
||||||
return flask.Response("Mail already registered or phone number or pin code is not correct", 428)
|
return flask.Response("Mail already registered or phone number or pin code is not correct", 428)
|
||||||
@ -116,15 +118,19 @@ def register() -> flask.Response:
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
return flask.Response("Not logged in", 428)
|
return flask.Response("Not logged in", 428)
|
||||||
try:
|
try:
|
||||||
|
print(utils.UserHandler.get_user_by_id(user_id))
|
||||||
team_id = utils.UserHandler.get_user_by_id(user_id).team_id
|
team_id = utils.UserHandler.get_user_by_id(user_id).team_id
|
||||||
utils.UserHandler.create_user(utils.User(
|
utils.UserHandler.create_user(utils.User(
|
||||||
-1,
|
-1,
|
||||||
secrets.token_urlsafe(20),
|
secrets.token_urlsafe(20),
|
||||||
team_id=team_id,
|
team_id=team_id,
|
||||||
|
team_leader=0,
|
||||||
**flask.request.form,
|
**flask.request.form,
|
||||||
))
|
))
|
||||||
except TypeError:
|
except TypeError:
|
||||||
return flask.Response("Not all details provided", 422)
|
return flask.Response("Not all details provided", 422)
|
||||||
|
except AssertionError:
|
||||||
|
return flask.Response("Max 4 members", 400)
|
||||||
except sqlite3.IntegrityError as error:
|
except sqlite3.IntegrityError as error:
|
||||||
error_message = str(error)
|
error_message = str(error)
|
||||||
if error_message == "UNIQUE constraint failed: users.phone_number":
|
if error_message == "UNIQUE constraint failed: users.phone_number":
|
||||||
|
@ -34,3 +34,14 @@ class TeamHandler:
|
|||||||
)
|
)
|
||||||
cls.__connection.commit()
|
cls.__connection.commit()
|
||||||
return team.lastrowid if team.lastrowid else -1
|
return team.lastrowid if team.lastrowid else -1
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_team_members(cls, team_id: int) -> list[int]:
|
||||||
|
users = cls.__cursor.execute(
|
||||||
|
f"""
|
||||||
|
SELECT user_id
|
||||||
|
FROM users WHERE team_id = ?;
|
||||||
|
""",
|
||||||
|
(team_id, )
|
||||||
|
).fetchall()
|
||||||
|
return users
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import bcrypt
|
import bcrypt
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
import utils
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ -19,6 +20,7 @@ class User:
|
|||||||
phone_number: int
|
phone_number: int
|
||||||
name: str
|
name: str
|
||||||
team_id: int
|
team_id: int
|
||||||
|
team_leader: int
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@ -35,6 +37,7 @@ class User:
|
|||||||
pin_code: int|str,
|
pin_code: int|str,
|
||||||
phone_number: int|str,
|
phone_number: int|str,
|
||||||
name: str,
|
name: str,
|
||||||
|
team_leader: bool|int|str,
|
||||||
team_id: int|str,
|
team_id: int|str,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.user_id: int = int(user_id)
|
self.user_id: int = int(user_id)
|
||||||
@ -51,6 +54,7 @@ class User:
|
|||||||
self.phone_number: int = int(phone_number)
|
self.phone_number: int = int(phone_number)
|
||||||
self.name = name
|
self.name = name
|
||||||
self.team_id = int(team_id)
|
self.team_id = int(team_id)
|
||||||
|
self.team_leader = int(team_leader)
|
||||||
|
|
||||||
def to_dict(self) -> dict:
|
def to_dict(self) -> dict:
|
||||||
the_dict = vars(self)
|
the_dict = vars(self)
|
||||||
@ -66,6 +70,7 @@ class UserHandler:
|
|||||||
cls,
|
cls,
|
||||||
user: User
|
user: User
|
||||||
) -> None:
|
) -> None:
|
||||||
|
assert len(utils.TeamHandler.get_team_members(user.team_id)) < 4
|
||||||
salt = bcrypt.gensalt()
|
salt = bcrypt.gensalt()
|
||||||
encrypted_password = bcrypt.hashpw(user.password.encode("utf-8"), salt)
|
encrypted_password = bcrypt.hashpw(user.password.encode("utf-8"), salt)
|
||||||
cls.__cursor.execute(
|
cls.__cursor.execute(
|
||||||
@ -86,7 +91,7 @@ class UserHandler:
|
|||||||
team_id,
|
team_id,
|
||||||
team_leader
|
team_leader
|
||||||
)
|
)
|
||||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1)
|
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
""",
|
""",
|
||||||
(
|
(
|
||||||
encrypted_password,
|
encrypted_password,
|
||||||
@ -102,6 +107,7 @@ class UserHandler:
|
|||||||
user.phone_number,
|
user.phone_number,
|
||||||
user.name,
|
user.name,
|
||||||
user.team_id,
|
user.team_id,
|
||||||
|
user.team_leader,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
cls.__connection.commit()
|
cls.__connection.commit()
|
||||||
@ -132,7 +138,8 @@ class UserHandler:
|
|||||||
user[10],
|
user[10],
|
||||||
user[11],
|
user[11],
|
||||||
user[12],
|
user[12],
|
||||||
user[13]
|
user[13],
|
||||||
|
user[14],
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -161,7 +168,8 @@ class UserHandler:
|
|||||||
user[10],
|
user[10],
|
||||||
user[11],
|
user[11],
|
||||||
user[12],
|
user[12],
|
||||||
user[13]
|
user[13],
|
||||||
|
user[14],
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
x
Reference in New Issue
Block a user