Added forgot password
This commit is contained in:
parent
b5bf60d4d2
commit
9618ffffd2
282
backend/data/project-files/43/steam.desktop
Normal file
282
backend/data/project-files/43/steam.desktop
Normal file
@ -0,0 +1,282 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Steam (Runtime)
|
||||||
|
Comment=Application for managing and playing games on Steam
|
||||||
|
Comment[pt_BR]=Aplicativo para jogar e gerenciar jogos no Steam
|
||||||
|
Comment[bg]=Приложение за ръководене и пускане на игри в Steam
|
||||||
|
Comment[cs]=Aplikace pro spravování a hraní her ve službě Steam
|
||||||
|
Comment[da]=Applikation til at håndtere og spille spil på Steam
|
||||||
|
Comment[nl]=Applicatie voor het beheer en het spelen van games op Steam
|
||||||
|
Comment[fi]=Steamin pelien hallintaan ja pelaamiseen tarkoitettu sovellus
|
||||||
|
Comment[fr]=Application de gestion et d'utilisation des jeux sur Steam
|
||||||
|
Comment[de]=Anwendung zum Verwalten und Spielen von Spielen auf Steam
|
||||||
|
Comment[el]=Εφαρμογή διαχείρισης παιχνιδιών στο Steam
|
||||||
|
Comment[hu]=Alkalmazás a Steames játékok futtatásához és kezeléséhez
|
||||||
|
Comment[it]=Applicazione per la gestione e l'esecuzione di giochi su Steam
|
||||||
|
Comment[ja]=Steam 上でゲームを管理&プレイするためのアプリケーション
|
||||||
|
Comment[ko]=Steam에 있는 게임을 관리하고 플레이할 수 있는 응용 프로그램
|
||||||
|
Comment[no]=Program for å administrere og spille spill på Steam
|
||||||
|
Comment[pt_PT]=Aplicação para organizar e executar jogos no Steam
|
||||||
|
Comment[pl]=Aplikacja do zarządzania i uruchamiania gier na platformie Steam
|
||||||
|
Comment[ro]=Aplicație pentru administrarea și jucatul jocurilor pe Steam
|
||||||
|
Comment[ru]=Приложение для игр и управления играми в Steam
|
||||||
|
Comment[es]=Aplicación para administrar y ejecutar juegos en Steam
|
||||||
|
Comment[sv]=Ett program för att hantera samt spela spel på Steam
|
||||||
|
Comment[zh_CN]=管理和进行 Steam 游戏的应用程序
|
||||||
|
Comment[zh_TW]=管理並執行 Steam 遊戲的應用程式
|
||||||
|
Comment[th]=โปรแกรมสำหรับจัดการและเล่นเกมบน Steam
|
||||||
|
Comment[tr]=Steam üzerinden oyun oynama ve düzenleme uygulaması
|
||||||
|
Comment[uk]=Програма для керування іграми та запуску ігор у Steam
|
||||||
|
Comment[vi]=Ứng dụng để quản lý và chơi trò chơi trên Steam
|
||||||
|
Exec=/usr/bin/steam-runtime %U
|
||||||
|
Icon=steam
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;FileTransfer;Game;
|
||||||
|
MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
|
||||||
|
Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
|
||||||
|
PrefersNonDefaultGPU=true
|
||||||
|
X-KDE-RunOnDiscreteGpu=true
|
||||||
|
|
||||||
|
[Desktop Action Store]
|
||||||
|
Name=Store
|
||||||
|
Name[pt_BR]=Loja
|
||||||
|
Name[bg]=Магазин
|
||||||
|
Name[cs]=Obchod
|
||||||
|
Name[da]=Butik
|
||||||
|
Name[nl]=Winkel
|
||||||
|
Name[fi]=Kauppa
|
||||||
|
Name[fr]=Magasin
|
||||||
|
Name[de]=Shop
|
||||||
|
Name[el]=ΚΑΤΑΣΤΗΜΑ
|
||||||
|
Name[hu]=Áruház
|
||||||
|
Name[it]=Negozio
|
||||||
|
Name[ja]=ストア
|
||||||
|
Name[ko]=상점
|
||||||
|
Name[no]=Butikk
|
||||||
|
Name[pt_PT]=Loja
|
||||||
|
Name[pl]=Sklep
|
||||||
|
Name[ro]=Magazin
|
||||||
|
Name[ru]=Магазин
|
||||||
|
Name[es]=Tienda
|
||||||
|
Name[sv]=Butik
|
||||||
|
Name[zh_CN]=商店
|
||||||
|
Name[zh_TW]=商店
|
||||||
|
Name[th]=ร้านค้า
|
||||||
|
Name[tr]=Mağaza
|
||||||
|
Name[uk]=Крамниця
|
||||||
|
Name[vi]=Cửa hàng
|
||||||
|
Exec=steam steam://store
|
||||||
|
|
||||||
|
[Desktop Action Community]
|
||||||
|
Name=Community
|
||||||
|
Name[pt_BR]=Comunidade
|
||||||
|
Name[bg]=Общност
|
||||||
|
Name[cs]=Komunita
|
||||||
|
Name[da]=Fællesskab
|
||||||
|
Name[nl]=Community
|
||||||
|
Name[fi]=Yhteisö
|
||||||
|
Name[fr]=Communauté
|
||||||
|
Name[de]=Community
|
||||||
|
Name[el]=Κοινότητα
|
||||||
|
Name[hu]=Közösség
|
||||||
|
Name[it]=Comunità
|
||||||
|
Name[ja]=コミュニティ
|
||||||
|
Name[ko]=커뮤니티
|
||||||
|
Name[no]=Samfunn
|
||||||
|
Name[pt_PT]=Comunidade
|
||||||
|
Name[pl]=Społeczność
|
||||||
|
Name[ro]=Comunitate
|
||||||
|
Name[ru]=Сообщество
|
||||||
|
Name[es]=Comunidad
|
||||||
|
Name[sv]=Gemenskap
|
||||||
|
Name[zh_CN]=社区
|
||||||
|
Name[zh_TW]=社群
|
||||||
|
Name[th]=ชุมชน
|
||||||
|
Name[tr]=Topluluk
|
||||||
|
Name[uk]=Спільнота
|
||||||
|
Name[vi]=Cộng đồng
|
||||||
|
Exec=steam steam://url/SteamIDControlPage
|
||||||
|
|
||||||
|
[Desktop Action Library]
|
||||||
|
Name=Library
|
||||||
|
Name[pt_BR]=Biblioteca
|
||||||
|
Name[bg]=Библиотека
|
||||||
|
Name[cs]=Knihovna
|
||||||
|
Name[da]=Bibliotek
|
||||||
|
Name[nl]=Bibliotheek
|
||||||
|
Name[fi]=Kokoelma
|
||||||
|
Name[fr]=Bibliothèque
|
||||||
|
Name[de]=Bibliothek
|
||||||
|
Name[el]=Συλλογή
|
||||||
|
Name[hu]=Könyvtár
|
||||||
|
Name[it]=Libreria
|
||||||
|
Name[ja]=ライブラリ
|
||||||
|
Name[ko]=라이브러리
|
||||||
|
Name[no]=Bibliotek
|
||||||
|
Name[pt_PT]=Biblioteca
|
||||||
|
Name[pl]=Biblioteka
|
||||||
|
Name[ro]=Colecţie
|
||||||
|
Name[ru]=Библиотека
|
||||||
|
Name[es]=Biblioteca
|
||||||
|
Name[sv]=Bibliotek
|
||||||
|
Name[zh_CN]=库
|
||||||
|
Name[zh_TW]=收藏庫
|
||||||
|
Name[th]=คลัง
|
||||||
|
Name[tr]=Kütüphane
|
||||||
|
Name[uk]=Бібліотека
|
||||||
|
Name[vi]=Thư viện
|
||||||
|
Exec=steam steam://open/games
|
||||||
|
|
||||||
|
[Desktop Action Servers]
|
||||||
|
Name=Servers
|
||||||
|
Name[pt_BR]=Servidores
|
||||||
|
Name[bg]=Сървъри
|
||||||
|
Name[cs]=Servery
|
||||||
|
Name[da]=Servere
|
||||||
|
Name[nl]=Servers
|
||||||
|
Name[fi]=Palvelimet
|
||||||
|
Name[fr]=Serveurs
|
||||||
|
Name[de]=Server
|
||||||
|
Name[el]=Διακομιστές
|
||||||
|
Name[hu]=Szerverek
|
||||||
|
Name[it]=Server
|
||||||
|
Name[ja]=サーバー
|
||||||
|
Name[ko]=서버
|
||||||
|
Name[no]=Tjenere
|
||||||
|
Name[pt_PT]=Servidores
|
||||||
|
Name[pl]=Serwery
|
||||||
|
Name[ro]=Servere
|
||||||
|
Name[ru]=Серверы
|
||||||
|
Name[es]=Servidores
|
||||||
|
Name[sv]=Servrar
|
||||||
|
Name[zh_CN]=服务器
|
||||||
|
Name[zh_TW]=伺服器
|
||||||
|
Name[th]=เซิร์ฟเวอร์
|
||||||
|
Name[tr]=Sunucular
|
||||||
|
Name[uk]=Сервери
|
||||||
|
Name[vi]=Máy chủ
|
||||||
|
Exec=steam steam://open/servers
|
||||||
|
|
||||||
|
[Desktop Action Screenshots]
|
||||||
|
Name=Screenshots
|
||||||
|
Name[pt_BR]=Capturas de tela
|
||||||
|
Name[bg]=Снимки
|
||||||
|
Name[cs]=Snímky obrazovky
|
||||||
|
Name[da]=Skærmbilleder
|
||||||
|
Name[nl]=Screenshots
|
||||||
|
Name[fi]=Kuvankaappaukset
|
||||||
|
Name[fr]=Captures d'écran
|
||||||
|
Name[de]=Screenshots
|
||||||
|
Name[el]=Φωτογραφίες
|
||||||
|
Name[hu]=Képernyőmentések
|
||||||
|
Name[it]=Screenshot
|
||||||
|
Name[ja]=スクリーンショット
|
||||||
|
Name[ko]=스크린샷
|
||||||
|
Name[no]=Skjermbilder
|
||||||
|
Name[pt_PT]=Capturas de ecrã
|
||||||
|
Name[pl]=Zrzuty ekranu
|
||||||
|
Name[ro]=Capturi de ecran
|
||||||
|
Name[ru]=Скриншоты
|
||||||
|
Name[es]=Capturas
|
||||||
|
Name[sv]=Skärmdumpar
|
||||||
|
Name[zh_CN]=截图
|
||||||
|
Name[zh_TW]=螢幕擷圖
|
||||||
|
Name[th]=ภาพหน้าจอ
|
||||||
|
Name[tr]=Ekran Görüntüleri
|
||||||
|
Name[uk]=Скріншоти
|
||||||
|
Name[vi]=Ảnh chụp
|
||||||
|
Exec=steam steam://open/screenshots
|
||||||
|
|
||||||
|
[Desktop Action News]
|
||||||
|
Name=News
|
||||||
|
Name[pt_BR]=Notícias
|
||||||
|
Name[bg]=Новини
|
||||||
|
Name[cs]=Zprávy
|
||||||
|
Name[da]=Nyheder
|
||||||
|
Name[nl]=Nieuws
|
||||||
|
Name[fi]=Uutiset
|
||||||
|
Name[fr]=Actualités
|
||||||
|
Name[de]=Neuigkeiten
|
||||||
|
Name[el]=Νέα
|
||||||
|
Name[hu]=Hírek
|
||||||
|
Name[it]=Notizie
|
||||||
|
Name[ja]=ニュース
|
||||||
|
Name[ko]=뉴스
|
||||||
|
Name[no]=Nyheter
|
||||||
|
Name[pt_PT]=Novidades
|
||||||
|
Name[pl]=Aktualności
|
||||||
|
Name[ro]=Știri
|
||||||
|
Name[ru]=Новости
|
||||||
|
Name[es]=Noticias
|
||||||
|
Name[sv]=Nyheter
|
||||||
|
Name[zh_CN]=新闻
|
||||||
|
Name[zh_TW]=新聞
|
||||||
|
Name[th]=ข่าวสาร
|
||||||
|
Name[tr]=Haberler
|
||||||
|
Name[uk]=Новини
|
||||||
|
Name[vi]=Tin tức
|
||||||
|
Exec=steam steam://open/news
|
||||||
|
|
||||||
|
[Desktop Action Settings]
|
||||||
|
Name=Settings
|
||||||
|
Name[pt_BR]=Configurações
|
||||||
|
Name[bg]=Настройки
|
||||||
|
Name[cs]=Nastavení
|
||||||
|
Name[da]=Indstillinger
|
||||||
|
Name[nl]=Instellingen
|
||||||
|
Name[fi]=Asetukset
|
||||||
|
Name[fr]=Paramètres
|
||||||
|
Name[de]=Einstellungen
|
||||||
|
Name[el]=Ρυθμίσεις
|
||||||
|
Name[hu]=Beállítások
|
||||||
|
Name[it]=Impostazioni
|
||||||
|
Name[ja]=設定
|
||||||
|
Name[ko]=설정
|
||||||
|
Name[no]=Innstillinger
|
||||||
|
Name[pt_PT]=Definições
|
||||||
|
Name[pl]=Ustawienia
|
||||||
|
Name[ro]=Setări
|
||||||
|
Name[ru]=Настройки
|
||||||
|
Name[es]=Parámetros
|
||||||
|
Name[sv]=Inställningar
|
||||||
|
Name[zh_CN]=设置
|
||||||
|
Name[zh_TW]=設定
|
||||||
|
Name[th]=การตั้งค่า
|
||||||
|
Name[tr]=Ayarlar
|
||||||
|
Name[uk]=Налаштування
|
||||||
|
Name[vi]=Thiết lập
|
||||||
|
Exec=steam steam://open/settings
|
||||||
|
|
||||||
|
[Desktop Action BigPicture]
|
||||||
|
Name=Big Picture
|
||||||
|
Exec=steam steam://open/bigpicture
|
||||||
|
|
||||||
|
[Desktop Action Friends]
|
||||||
|
Name=Friends
|
||||||
|
Name[pt_BR]=Amigos
|
||||||
|
Name[bg]=Приятели
|
||||||
|
Name[cs]=Přátelé
|
||||||
|
Name[da]=Venner
|
||||||
|
Name[nl]=Vrienden
|
||||||
|
Name[fi]=Kaverit
|
||||||
|
Name[fr]=Amis
|
||||||
|
Name[de]=Freunde
|
||||||
|
Name[el]=Φίλοι
|
||||||
|
Name[hu]=Barátok
|
||||||
|
Name[it]=Amici
|
||||||
|
Name[ja]=フレンド
|
||||||
|
Name[ko]=친구
|
||||||
|
Name[no]=Venner
|
||||||
|
Name[pt_PT]=Amigos
|
||||||
|
Name[pl]=Znajomi
|
||||||
|
Name[ro]=Prieteni
|
||||||
|
Name[ru]=Друзья
|
||||||
|
Name[es]=Amigos
|
||||||
|
Name[sv]=Vänner
|
||||||
|
Name[zh_CN]=好友
|
||||||
|
Name[zh_TW]=好友
|
||||||
|
Name[th]=เพื่อน
|
||||||
|
Name[tr]=Arkadaşlar
|
||||||
|
Name[uk]=Друзі
|
||||||
|
Name[vi]=Bạn bè
|
||||||
|
Exec=steam steam://open/friends
|
BIN
backend/data/project-files/44/IMG-20240713-WA0017.jpg
Normal file
BIN
backend/data/project-files/44/IMG-20240713-WA0017.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
@ -1,8 +1,9 @@
|
|||||||
import os
|
import os
|
||||||
import secrets
|
import secrets
|
||||||
import sqlite3
|
import mariadb
|
||||||
import flask
|
import flask
|
||||||
import utils
|
import utils
|
||||||
|
from utils.mail import MailHandler
|
||||||
|
|
||||||
|
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
@ -46,6 +47,35 @@ def confirm_mail_code() -> flask.Response:
|
|||||||
return flask.Response("Wrong code", 400)
|
return flask.Response("Wrong code", 400)
|
||||||
|
|
||||||
|
|
||||||
|
@app.post("/send-mail-code-for-reset-password")
|
||||||
|
def send_mail_code_for_reset_password() -> flask.Response:
|
||||||
|
try:
|
||||||
|
mail = flask.request.form["mail"]
|
||||||
|
except KeyError:
|
||||||
|
return flask.Response("Mail missing", 422)
|
||||||
|
try:
|
||||||
|
MailHandler.send_code(mail)
|
||||||
|
utils.UserHandler.get_user_by_mail(mail)
|
||||||
|
except:
|
||||||
|
return flask.Response("Wrong mail/ mail doesn't exist", 404)
|
||||||
|
respose = flask.Response()
|
||||||
|
respose.set_cookie("mail", mail)
|
||||||
|
return respose
|
||||||
|
|
||||||
|
|
||||||
|
@app.post("/reset-password")
|
||||||
|
def reset_password() -> flask.Response:
|
||||||
|
try:
|
||||||
|
mail = flask.session["mail"]
|
||||||
|
except KeyError:
|
||||||
|
return flask.Response("mail not registered", 428)
|
||||||
|
try:
|
||||||
|
utils.UserHandler.reset_password(mail, flask.request.form["password"])
|
||||||
|
except KeyError:
|
||||||
|
return flask.Response("password missing", 422)
|
||||||
|
return flask.Response()
|
||||||
|
|
||||||
|
|
||||||
@app.post("/register-leader")
|
@app.post("/register-leader")
|
||||||
def register_leader() -> flask.Response:
|
def register_leader() -> flask.Response:
|
||||||
try:
|
try:
|
||||||
@ -70,10 +100,14 @@ def register_leader() -> flask.Response:
|
|||||||
flask.session["user_id"] = user_id
|
flask.session["user_id"] = user_id
|
||||||
except (TypeError, KeyError):
|
except (TypeError, KeyError):
|
||||||
return flask.Response("Something is missing", 422)
|
return flask.Response("Something is missing", 422)
|
||||||
except sqlite3.IntegrityError:
|
except mariadb.DataError:
|
||||||
return flask.Response("Mail or phone number already registered or phone number or pin code is not correct", 428)
|
return flask.Response("phone number or pin code is not correct", 428)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return flask.Response("There is text where number is supposed to be there", 400)
|
return flask.Response("There is text where number is supposed to be there", 400)
|
||||||
|
except mariadb.InterfaceError:
|
||||||
|
return flask.Response("Mail or phone taken", 428)
|
||||||
|
except mariadb.ProgrammingError:
|
||||||
|
pass
|
||||||
try:
|
try:
|
||||||
utils.MailHandler.send_success_mail(mail)
|
utils.MailHandler.send_success_mail(mail)
|
||||||
except:
|
except:
|
||||||
@ -92,7 +126,8 @@ def login() -> flask.Response:
|
|||||||
assert utils.UserHandler.verify_password_by_mail(mail, password)
|
assert utils.UserHandler.verify_password_by_mail(mail, password)
|
||||||
flask.session["user_id"] = utils.UserHandler.get_user_by_mail(mail).user_id
|
flask.session["user_id"] = utils.UserHandler.get_user_by_mail(mail).user_id
|
||||||
return flask.Response()
|
return flask.Response()
|
||||||
except KeyError:
|
except KeyError as e:
|
||||||
|
print(e)
|
||||||
return flask.Response("Mail doesn't exist", 404)
|
return flask.Response("Mail doesn't exist", 404)
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
return flask.Response("Wrong password", 400)
|
return flask.Response("Wrong password", 400)
|
||||||
@ -102,7 +137,7 @@ def login() -> flask.Response:
|
|||||||
def get_id() -> flask.Response:
|
def get_id() -> flask.Response:
|
||||||
try:
|
try:
|
||||||
return flask.Response(utils.UserHandler.get_user_by_id(flask.session["user_id"]).mail)
|
return flask.Response(utils.UserHandler.get_user_by_id(flask.session["user_id"]).mail)
|
||||||
except KeyError:
|
except (KeyError, AssertionError):
|
||||||
return flask.Response("Not logged in", 428)
|
return flask.Response("Not logged in", 428)
|
||||||
|
|
||||||
|
|
||||||
@ -134,7 +169,7 @@ def register() -> flask.Response:
|
|||||||
return flask.Response("Not all details provided", 422)
|
return flask.Response("Not all details provided", 422)
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
return flask.Response("Max 4 members", 400)
|
return flask.Response("Max 4 members", 400)
|
||||||
except sqlite3.IntegrityError as error:
|
except mariadb.DataError 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":
|
||||||
return flask.Response("Phone number taken", 400)
|
return flask.Response("Phone number taken", 400)
|
||||||
@ -171,7 +206,7 @@ def update_ideas() -> flask.Response:
|
|||||||
team_id=team_id,
|
team_id=team_id,
|
||||||
**flask.request.form,
|
**flask.request.form,
|
||||||
))
|
))
|
||||||
except KeyError:
|
except (KeyError, AssertionError):
|
||||||
return flask.Response("Something is missing", 422)
|
return flask.Response("Something is missing", 422)
|
||||||
return flask.Response()
|
return flask.Response()
|
||||||
|
|
||||||
|
@ -66,14 +66,15 @@ class TeamHandler:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def create_team(cls, team_name: str) -> int:
|
def create_team(cls, team_name: str) -> int:
|
||||||
cls.init()
|
cls.init()
|
||||||
team = cls.__cursor.execute(
|
cls.__cursor.execute(
|
||||||
"""
|
"""
|
||||||
INSERT INTO teams(team_name) VALUES(?)
|
INSERT INTO teams(team_name) VALUES(?)
|
||||||
""",
|
""",
|
||||||
(team_name, )
|
(team_name, )
|
||||||
)
|
)
|
||||||
|
team_id = cls.__cursor.lastrowid
|
||||||
cls.close()
|
cls.close()
|
||||||
return team.lastrowid if team.lastrowid else -1
|
return team_id
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_team_members(cls, team_id: int) -> list[int]:
|
def get_team_members(cls, team_id: int) -> list[int]:
|
||||||
@ -84,7 +85,8 @@ class TeamHandler:
|
|||||||
FROM users WHERE team_id = ?;
|
FROM users WHERE team_id = ?;
|
||||||
""",
|
""",
|
||||||
(team_id, )
|
(team_id, )
|
||||||
).fetchall()
|
)
|
||||||
|
users = users.fetchall() if users else []
|
||||||
cls.close()
|
cls.close()
|
||||||
return [user[0] for user in users]
|
return [user[0] for user in users]
|
||||||
|
|
||||||
@ -128,11 +130,13 @@ class TeamHandler:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def get_project(cls, team_id: int) -> Team:
|
def get_project(cls, team_id: int) -> Team:
|
||||||
cls.init()
|
cls.init()
|
||||||
teams = cls.__cursor.execute(
|
cls.__cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
SELECT * FROM teams WHERE team_id = ?
|
SELECT * FROM teams WHERE team_id = ?
|
||||||
""", (team_id, )
|
""", (team_id, )
|
||||||
).fetchall()[0]
|
)
|
||||||
|
teams = cls.__cursor
|
||||||
|
teams = teams.fetchall()[0] if teams else []
|
||||||
cls.close()
|
cls.close()
|
||||||
return Team(
|
return Team(
|
||||||
teams[0],
|
teams[0],
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import mariadb
|
||||||
import bcrypt
|
import bcrypt
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import mariadb
|
|
||||||
import utils
|
import utils
|
||||||
|
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ class User:
|
|||||||
country: str
|
country: str
|
||||||
taluk: str
|
taluk: str
|
||||||
pin_code: int
|
pin_code: int
|
||||||
phone_number: int
|
phone_number: str
|
||||||
name: str
|
name: str
|
||||||
team_id: int
|
team_id: int
|
||||||
team_leader: int
|
team_leader: int
|
||||||
@ -35,7 +35,7 @@ class User:
|
|||||||
country: str,
|
country: str,
|
||||||
taluk: str,
|
taluk: str,
|
||||||
pin_code: int|str,
|
pin_code: int|str,
|
||||||
phone_number: int|str,
|
phone_number: str,
|
||||||
name: str,
|
name: str,
|
||||||
team_leader: bool|int|str,
|
team_leader: bool|int|str,
|
||||||
team_id: int|str,
|
team_id: int|str,
|
||||||
@ -51,7 +51,7 @@ class User:
|
|||||||
self.country: str = country
|
self.country: str = country
|
||||||
self.taluk: str = taluk
|
self.taluk: str = taluk
|
||||||
self.pin_code: int = int(pin_code)
|
self.pin_code: int = int(pin_code)
|
||||||
self.phone_number: int = int(phone_number)
|
self.phone_number = 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)
|
self.team_leader = int(team_leader)
|
||||||
@ -134,7 +134,8 @@ class UserHandler:
|
|||||||
FROM users WHERE user_id = ?;
|
FROM users WHERE user_id = ?;
|
||||||
""",
|
""",
|
||||||
(user_id, )
|
(user_id, )
|
||||||
).fetchall()
|
)
|
||||||
|
users = cls.__cursor.fetchall()
|
||||||
assert users, f"{user_id} does not exist!"
|
assert users, f"{user_id} does not exist!"
|
||||||
user = users[0]
|
user = users[0]
|
||||||
cls.close()
|
cls.close()
|
||||||
@ -158,13 +159,15 @@ class UserHandler:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_user_by_mail(cls, mail: str) -> User:
|
def get_user_by_mail(cls, mail: str) -> User:
|
||||||
|
cls.init()
|
||||||
users = cls.__cursor.execute(
|
users = cls.__cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM users WHERE mail = ?;
|
FROM users WHERE mail = ?;
|
||||||
""",
|
""",
|
||||||
(mail, )
|
(mail, )
|
||||||
).fetchall()
|
)
|
||||||
|
users = cls.__cursor.fetchall()
|
||||||
if not users:
|
if not users:
|
||||||
raise KeyError(f"{mail} does not exist!")
|
raise KeyError(f"{mail} does not exist!")
|
||||||
user = users[0]
|
user = users[0]
|
||||||
@ -190,19 +193,20 @@ class UserHandler:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def verify_password_by_mail(cls, mail: str, password: str) -> bool:
|
def verify_password_by_mail(cls, mail: str, password: str) -> bool:
|
||||||
cls.init()
|
cls.init()
|
||||||
users = cls.__cursor.execute(
|
cls.__cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
SELECT password
|
SELECT password FROM users WHERE mail='koshinhegde@gmail.com'
|
||||||
FROM users WHERE mail = ?;
|
|
||||||
""",
|
""",
|
||||||
(mail, )
|
(mail, )
|
||||||
).fetchall()
|
)
|
||||||
|
users = cls.__cursor.fetchall()
|
||||||
if not users:
|
if not users:
|
||||||
raise KeyError(f"{mail} does not exist!")
|
raise KeyError(f"{mail} does not exist!")
|
||||||
|
real_password: str = users[0][0]
|
||||||
cls.close()
|
cls.close()
|
||||||
return bcrypt.checkpw(
|
return bcrypt.checkpw(
|
||||||
password.encode("utf-8"),
|
password.encode("utf-8"),
|
||||||
users[0][0]
|
real_password.encode()
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -212,6 +216,22 @@ class UserHandler:
|
|||||||
cls.__cursor.execute(
|
cls.__cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
DELETE FROM users WHERE mail=?
|
DELETE FROM users WHERE mail=?
|
||||||
""", (mail, )
|
""",
|
||||||
|
(mail, )
|
||||||
|
)
|
||||||
|
cls.close()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def reset_password(cls, mail: int, password: str) -> None:
|
||||||
|
cls.init()
|
||||||
|
salt = bcrypt.gensalt()
|
||||||
|
encrypted_password = bcrypt.hashpw(password.encode("utf-8"), salt)
|
||||||
|
cls.__cursor.execute(
|
||||||
|
f"""
|
||||||
|
UPDATE users
|
||||||
|
SET password=?
|
||||||
|
WHERE mail=?
|
||||||
|
""",
|
||||||
|
(encrypted_password, mail, )
|
||||||
)
|
)
|
||||||
cls.close()
|
cls.close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user