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 secrets
|
||||
import sqlite3
|
||||
import mariadb
|
||||
import flask
|
||||
import utils
|
||||
from utils.mail import MailHandler
|
||||
|
||||
|
||||
app = flask.Flask(__name__)
|
||||
@ -46,6 +47,35 @@ def confirm_mail_code() -> flask.Response:
|
||||
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")
|
||||
def register_leader() -> flask.Response:
|
||||
try:
|
||||
@ -70,10 +100,14 @@ def register_leader() -> flask.Response:
|
||||
flask.session["user_id"] = user_id
|
||||
except (TypeError, KeyError):
|
||||
return flask.Response("Something is missing", 422)
|
||||
except sqlite3.IntegrityError:
|
||||
return flask.Response("Mail or phone number already registered or phone number or pin code is not correct", 428)
|
||||
except mariadb.DataError:
|
||||
return flask.Response("phone number or pin code is not correct", 428)
|
||||
except ValueError:
|
||||
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:
|
||||
utils.MailHandler.send_success_mail(mail)
|
||||
except:
|
||||
@ -92,7 +126,8 @@ def login() -> flask.Response:
|
||||
assert utils.UserHandler.verify_password_by_mail(mail, password)
|
||||
flask.session["user_id"] = utils.UserHandler.get_user_by_mail(mail).user_id
|
||||
return flask.Response()
|
||||
except KeyError:
|
||||
except KeyError as e:
|
||||
print(e)
|
||||
return flask.Response("Mail doesn't exist", 404)
|
||||
except AssertionError:
|
||||
return flask.Response("Wrong password", 400)
|
||||
@ -102,7 +137,7 @@ def login() -> flask.Response:
|
||||
def get_id() -> flask.Response:
|
||||
try:
|
||||
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)
|
||||
|
||||
|
||||
@ -134,7 +169,7 @@ def register() -> flask.Response:
|
||||
return flask.Response("Not all details provided", 422)
|
||||
except AssertionError:
|
||||
return flask.Response("Max 4 members", 400)
|
||||
except sqlite3.IntegrityError as error:
|
||||
except mariadb.DataError as error:
|
||||
error_message = str(error)
|
||||
if error_message == "UNIQUE constraint failed: users.phone_number":
|
||||
return flask.Response("Phone number taken", 400)
|
||||
@ -171,7 +206,7 @@ def update_ideas() -> flask.Response:
|
||||
team_id=team_id,
|
||||
**flask.request.form,
|
||||
))
|
||||
except KeyError:
|
||||
except (KeyError, AssertionError):
|
||||
return flask.Response("Something is missing", 422)
|
||||
return flask.Response()
|
||||
|
||||
|
@ -66,14 +66,15 @@ class TeamHandler:
|
||||
@classmethod
|
||||
def create_team(cls, team_name: str) -> int:
|
||||
cls.init()
|
||||
team = cls.__cursor.execute(
|
||||
cls.__cursor.execute(
|
||||
"""
|
||||
INSERT INTO teams(team_name) VALUES(?)
|
||||
""",
|
||||
(team_name, )
|
||||
)
|
||||
team_id = cls.__cursor.lastrowid
|
||||
cls.close()
|
||||
return team.lastrowid if team.lastrowid else -1
|
||||
return team_id
|
||||
|
||||
@classmethod
|
||||
def get_team_members(cls, team_id: int) -> list[int]:
|
||||
@ -84,7 +85,8 @@ class TeamHandler:
|
||||
FROM users WHERE team_id = ?;
|
||||
""",
|
||||
(team_id, )
|
||||
).fetchall()
|
||||
)
|
||||
users = users.fetchall() if users else []
|
||||
cls.close()
|
||||
return [user[0] for user in users]
|
||||
|
||||
@ -128,11 +130,13 @@ class TeamHandler:
|
||||
@classmethod
|
||||
def get_project(cls, team_id: int) -> Team:
|
||||
cls.init()
|
||||
teams = cls.__cursor.execute(
|
||||
cls.__cursor.execute(
|
||||
f"""
|
||||
SELECT * FROM teams WHERE team_id = ?
|
||||
""", (team_id, )
|
||||
).fetchall()[0]
|
||||
)
|
||||
teams = cls.__cursor
|
||||
teams = teams.fetchall()[0] if teams else []
|
||||
cls.close()
|
||||
return Team(
|
||||
teams[0],
|
||||
|
@ -1,6 +1,6 @@
|
||||
import mariadb
|
||||
import bcrypt
|
||||
from dataclasses import dataclass
|
||||
import mariadb
|
||||
import utils
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ class User:
|
||||
country: str
|
||||
taluk: str
|
||||
pin_code: int
|
||||
phone_number: int
|
||||
phone_number: str
|
||||
name: str
|
||||
team_id: int
|
||||
team_leader: int
|
||||
@ -35,7 +35,7 @@ class User:
|
||||
country: str,
|
||||
taluk: str,
|
||||
pin_code: int|str,
|
||||
phone_number: int|str,
|
||||
phone_number: str,
|
||||
name: str,
|
||||
team_leader: bool|int|str,
|
||||
team_id: int|str,
|
||||
@ -51,7 +51,7 @@ class User:
|
||||
self.country: str = country
|
||||
self.taluk: str = taluk
|
||||
self.pin_code: int = int(pin_code)
|
||||
self.phone_number: int = int(phone_number)
|
||||
self.phone_number = phone_number
|
||||
self.name = name
|
||||
self.team_id = int(team_id)
|
||||
self.team_leader = int(team_leader)
|
||||
@ -134,7 +134,8 @@ class UserHandler:
|
||||
FROM users WHERE user_id = ?;
|
||||
""",
|
||||
(user_id, )
|
||||
).fetchall()
|
||||
)
|
||||
users = cls.__cursor.fetchall()
|
||||
assert users, f"{user_id} does not exist!"
|
||||
user = users[0]
|
||||
cls.close()
|
||||
@ -158,13 +159,15 @@ class UserHandler:
|
||||
|
||||
@classmethod
|
||||
def get_user_by_mail(cls, mail: str) -> User:
|
||||
cls.init()
|
||||
users = cls.__cursor.execute(
|
||||
f"""
|
||||
SELECT *
|
||||
FROM users WHERE mail = ?;
|
||||
""",
|
||||
(mail, )
|
||||
).fetchall()
|
||||
)
|
||||
users = cls.__cursor.fetchall()
|
||||
if not users:
|
||||
raise KeyError(f"{mail} does not exist!")
|
||||
user = users[0]
|
||||
@ -190,19 +193,20 @@ class UserHandler:
|
||||
@classmethod
|
||||
def verify_password_by_mail(cls, mail: str, password: str) -> bool:
|
||||
cls.init()
|
||||
users = cls.__cursor.execute(
|
||||
cls.__cursor.execute(
|
||||
f"""
|
||||
SELECT password
|
||||
FROM users WHERE mail = ?;
|
||||
SELECT password FROM users WHERE mail='koshinhegde@gmail.com'
|
||||
""",
|
||||
(mail, )
|
||||
).fetchall()
|
||||
)
|
||||
users = cls.__cursor.fetchall()
|
||||
if not users:
|
||||
raise KeyError(f"{mail} does not exist!")
|
||||
real_password: str = users[0][0]
|
||||
cls.close()
|
||||
return bcrypt.checkpw(
|
||||
password.encode("utf-8"),
|
||||
users[0][0]
|
||||
real_password.encode()
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@ -212,6 +216,22 @@ class UserHandler:
|
||||
cls.__cursor.execute(
|
||||
f"""
|
||||
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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user