From 9618ffffd22a8207443b463eba1103d4a0048b17 Mon Sep 17 00:00:00 2001 From: kosh Date: Tue, 3 Sep 2024 09:56:53 +0530 Subject: [PATCH] Added forgot password --- backend/data/project-files/43/steam.desktop | 282 ++++++++++++++++++ .../project-files/44/IMG-20240713-WA0017.jpg | Bin 0 -> 80912 bytes backend/src/rest_api.py | 49 ++- backend/src/utils/team.py | 14 +- backend/src/utils/user.py | 44 ++- 5 files changed, 365 insertions(+), 24 deletions(-) create mode 100644 backend/data/project-files/43/steam.desktop create mode 100644 backend/data/project-files/44/IMG-20240713-WA0017.jpg diff --git a/backend/data/project-files/43/steam.desktop b/backend/data/project-files/43/steam.desktop new file mode 100644 index 0000000..a40c563 --- /dev/null +++ b/backend/data/project-files/43/steam.desktop @@ -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 diff --git a/backend/data/project-files/44/IMG-20240713-WA0017.jpg b/backend/data/project-files/44/IMG-20240713-WA0017.jpg new file mode 100644 index 0000000000000000000000000000000000000000..346732aa73f01ed154bc686c0e9782b04c235869 GIT binary patch literal 80912 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
~`=m@scaoh0Yz%nvRGXxAVgKxmBadf6#f?%fe9 zpIytwqZ@gN$Dh4;cTkL4P;rpv4{ro=%6ngF*+$!x^spJ~_f3jKsC|Q5XJ^KKlohuX&iVw>FrC5b2CBh?v=6wch%XHsW)TpJ<#J z^2|^*hf2%uDBALQ`52wR#+x!9YemL^^CLciC&xQF2y%>qe!{D{yG1C%X`$FN z8j~PixXA!K{(bo?L7-SWgFog!RYWph&I&!Ilb5fZy=iuHX6BoHeqtSXG z-V-)>pOuUEegF#1&|@HUV0OS}U6rzHJ1*}S@MwF5Y4?ommU=F0kO!1hVM1Bw1jXwPsbrgimKsV30nV8+1e!Uml|*kNnywkPdolHGb)_y zn*;`JL1o)fSfP&TSStR!TDh0p*C*mM$SS$r$eiQ9dn-f1XB#twvKTHUqO zSv}vCJ=bR`s88M7@J1xixK%@U6+iE;lHwRe8m5E1IQEFY>K~Z|7$`OO-bCdzUq?Ld z<`$)FEd%0~PXbzSr|Jp__3Enk)i}EuR9ROk|EV*;1%cP}tsF!t1$ge~Fghj=g_exT z!=FjxP~n_XfxF{5#hcs#Md@!2SwI~o1l*BlNUBm>sT0XQnapUNHfFapcAs{<*7&I&~KMvSWtc{W5rL_tV>eT%Fy1Yhg#CruIo;%TO_|<9G4O zVV%FCe18|uH?l{`<+UO(`nb2dp=fnNUeI--`&@PA;N=Ow=}6jbi~K~rH_nFnjZcln zQ5N$7{N701d-2y2LF~Kj)8?m%d!0vjtfIL)R*?b{Wk~*ZT=+@?Q6R^g(0k@i>MCPs z%J6pj!eg@5f_GfC(q@rwb(b{{V7N zSneu$T$8Zsv}n^+jPl^`Y9(S=&gPmUX6YBoQPkLB`GNm6&(izbg z7y?%G|M3$+gw;$OlWL8Xggz2VX*@Y5B_mw@fc@GJb*YP6?~i@v|3c&|OI?0dLo$2X z)@&?Ag>PE;;=a_}<7+D&#aatBN+tF&yz}+PgooKrr_^y3l9%??w8ZKIel?u2j-c{$ zkqOLAZI`hp{Id9WSi0J+2rmM=?34;UL$RAI&(KW6(4pPXh*N?e-gIi7_Fs&V71@ON zU60*k-zKt_=jEIAk9ttraU$nufL`opPbB2pEz!P80Fje9?Yo zHJ5mh>atRtneB<22m@gAXW}TDQF11^0evTGk$_ieF9zkYL95Uq~~UJafds*Cy-ZVdyAUzD<8(1cO9KpHtVpN#OpL3 z;is9_%u=wM>UUk;PlmEd_;&^Ft{J=UZ_E8vl*km#$~L9O?_QoVIiX>?MZL73WO`m~ zJ2e-T1IA(7@8#7-qScBZ))XCF^ewp8EKRP{WFJV@y$T$_qe#lLf*HN*RC~3Oy@~tm zJHA=PoW2qz!}bm{R-Ra?pwhyJA%a|c`!xyRQ(kHj;)`223zlyCsk7a0cMJm94jZ`WIvji2Vqk0syF+(49dI5?;)n^q6+gS#@m2Q2kxaY`dnXTUuxW+0i zS4R^VeLR1Ma@IoS*-ir!fKo{WS^5XT7sOM#{Ws>ewL<)0o zg&ObyU}LV%E>zD{&5U1J0M%z@Pf9!h9cPd%%`F%zN*e zCxwOzFh@xHj4*^mL>5gCxDrtAkevoNg9<*$K;V{L9qgTDJN^hFb=YC&%d;g8iK&t! zFGQ190!?0BX4*ww+_J=)8&Z`#Bwvh^jT7u$xYhE%6d6cUw;F{fVSy{`<^gZhe+XbJ zmMqIq9<@(Bn&_SqoQH|?$F*wO6W_@ve9*-Jn)17ipS*NZYa=H;W%;+rl1o*kwr$ry z9@hH`GpHXz3$90!V8O7{8SV+c^M@D%w1}!D$xZ`L|ay!sa$Vu}nvn5JKY*%iDwJZ{v z;pfKYZ%kqBuitP99X!y?N)(jv@+bRU{3RBikmTo<&p>tTX*P+l0PAJSm0zMwr>bfQ zYO-T0;m^b`MQ%CyJ^CM3Vb3(XIe$w27XOHH6NC0*=f6Wr29L?^#A8wKsBFLwXPBC$vskSE4zc}{N$0)bI}b`R7cg!FHNgk*kq&rW^&$-SnoGMyCw4#F zhP;Bt1u0NZH4)dsOb-I*V$Vm zGn$*_=K@}BI6oqUqEI1>1Wr!&n9rB0d}DY;QWO=^T|rCi zJoT{ufSLwL9Whg*k6CzQ$S55-hWKYEp!)-G%Mz!#BsLyu9*FlnRUmpBgozG}aVex! z117bkr5S6!(4=GeqAKqQNo{&x|~?iY7a>@^YMD6rpv`Fhg|vpf5- zX)Sw~um&!-GT-I?tjS+ElaEMK`0vn-=65cxl**KF)-yPYC4Ns?)I$v$o_Zv_4kU!5^e=}xh>1hZu5RYYZfy4_~p7(sA-_95^ zYTBY}ohGEX*!oEx3!&F9803F7H(aoICY>PUdmm3-lVYuhMl$JiU-fhGZ?k52z$7y#>)E7#u(N-=Wm=hhgOo+6Y2M zK{T>p$_m6%&d%x}7jWJ9(1MW>zJ2Bg8*hJ@aC|c1zDoAXD{5-L3pPiBN!v4m6q+YX z0W*IZtfEM)z|A+O(*{hG9*P{Z|k}_+j-tHkRHG6?*&V z)W-sWOkT9em1C%SH$=tm0Tpd-Jr;cs_gC2@XYSiFVO{5*(oqu=NQpeb$B~+U?+K>j zf0H~8yWE!Rjdhl`yhNyOY(LjhtG&Rfbk!2AW3-*}fs_o#N54Eaecef!xLIiB^X%wb zC8Vlda;*AVu;4_=Nf)b?rp|@4>4xb77tkCzH!ScJ>tEqk;k@VSKgPx!tW1lj@^eV1 z-A`g;%JpG|R$4kq}yuhuv=IJmOs(t()N-ex5;>v!x_YKTBv942w4;jM^;scSs zgP%bS!_Ss`r6I0c6zGkQlo|8wB0MD6IiLCO=SG{WD}rVZ+r72JE1ODo!B43CG}YVz zKE{u!@N5)Wu#is}Es{=+Pn#A=r7IjS%HR^#>wcLJn?WL^pMl8D89K|j4VT<{J4FMS zW(|)FN!h>&M}F{bOjX0ar!1~K%c*><`;<~d^jfgSUq@ZD7>Ed^*`gOfm#)zPt}ZG) zSyh8&Z~K8v*lQ)bM>-&}=W~8q*Ps5Dj<(9!uiK;(V{A2h%$`W!4wQslKOQwb?`7*m z-z}_bk@{N~P_HfSP6Bz4EHJXJi{dEGjt~&Ae4ta2ux;3)HSYsx$JgkT(G%d()2(3l zYJh>UQqMq>@sF}Ok^9LWjGnYg)1EtqV*P#xfJ?$PNuepbTKOS#EDgWqif*8F{hfP$ zfN_m7sjW2vYAdveEEGtdtjtKkyx<_S6l9)hG94V*->wV_vW6aU#kcY!pb)=^OgI#N z`NmpKyks-0>CJX(Z@-W)#B>S8 z)B;;V|Ku}u{_6I8GGQL!d)DP&rk&Xepo{L~ymRTdq{AxQ4Mi_W7Z&wz|MuS@gXQm-J6X}NSb%oa3qiFbNfi@*T#7lZf*$GMAl#gEfx>F@S4cH39}x*+K#MaR%@ zIkoxb=p{jYwkFawRf<24@0;&X4*z#(O#0=%?!A(bR^&T1(~^z3_Gk&aldvzZ|1^E9 zHXrX;WANVwBl%-ijwS#5L-MlM5^mK?Htd~IXrxl}SS6X+C>K!;Fw&I&yb^pLe=`rn z<_S<#7dWE5qVlIC$R|k72YHIik_&BbYCwl3c#H4q4hNF!}qhblCs(dOGb%FP% zOnUVxYw7~0q5vCJ&)S6EA}KsPyXvX#!;Mw3C1DqpUj(JX%JyYD(I3xc^${nvrFy}F z;Ebn_9>=NxEyfBbm&D%L2=d-)xYUZ&oDWvH5%b;vu{t6*+xh#K+=rLr+KyGir5<0KU>wYA@FtOgzlU@?{ z1Gg|A=PA)Z=URAa&>pvcIFEY%6y#HZgYRmr^rf|gVE;1PlFI|${41oS zj5_*=qH)DXi8&!@@0Vu;D!o^ANW!92FIe*jcu`(iw}&q0-eMYE|2Lt#pJ1-yH%~w6 ze*TA0t#=UN-rs*sj9M7e6lQajf53Bu!x_RHKISK<= z!EMZbMCIUz<*a^BL`@oLzWmkAlFNA^jJC8 zkczHh;@-59@8A4F;4SV9=GFFZe75)%J(|tRE^TjSvLU|XW#`yTn z`8#OBQ(RG1D-2oAzi^h9JTb>FVjciSDkmzki7z&0i?bBPEh3}m0I%vdp#`Q*2#L91 z|0SAy9)ALMoj9b+$8=a?uBluNQpCpJShCI42DN`7$aH+BtxF~p)^zJjhE$X>M9r{& z8gcD4cLWo;NFFgy#2b6$Egp9Ud$0VK^seS4=p;aG9`T{Mc&r9~p;3;&_g~#tdYThd zYSjvfEHm^ZzjMN6I-V+d=Lb0TlJivvcfQD=`~Tx*oZV+^gRWp+YUG{<#9n(q`brni z?)weo@5+au>o-qmCmIgmld0K+47AOl2E?m zBy6JwCcNW8FRnY@Wv9phEI4MO-*(j6GF;=w`qR1XSv<&sp7Yy`iJp%gQ>Ncw&pxnL z%0D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 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() diff --git a/backend/src/utils/team.py b/backend/src/utils/team.py index c77dbda..12cb363 100644 --- a/backend/src/utils/team.py +++ b/backend/src/utils/team.py @@ -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], diff --git a/backend/src/utils/user.py b/backend/src/utils/user.py index c1511e6..755242d 100644 --- a/backend/src/utils/user.py +++ b/backend/src/utils/user.py @@ -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()