From 1728610e015bf3ea524188a7b065a2e2342d45c2 Mon Sep 17 00:00:00 2001 From: MaximeOLIVA <maxime.oliva@etu.univ-cotedazur.fr> Date: Tue, 7 Feb 2023 16:31:13 +0100 Subject: [PATCH] change_password --- .../database_helper.cpython-310.pyc | Bin 3041 -> 3468 bytes Lab2/__pycache__/server.cpython-310.pyc | Bin 3234 -> 3780 bytes Lab2/database.db | Bin 28672 -> 28672 bytes Lab2/database_helper.py | 20 ++++++++++--- Lab2/server.py | 28 +++++++++++------- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/Lab2/__pycache__/database_helper.cpython-310.pyc b/Lab2/__pycache__/database_helper.cpython-310.pyc index 3550a2af235fb8d1abfe683389d03be3c07d2c65..2521f7a2f640d7d312631b2237ca65301146cc25 100644 GIT binary patch delta 1731 zcmaDT-XqPI&&$ijz`($;Fz-?FIo^qUGK?(~wM!JGQlwiLqWDu}Qe;~gq6AVHgBdjC zUV;?*X)@koOs|@_p^KlHfq_Aju?R%1WGLd8?8%tP$Tj&MQ?nDu$Xo2G6{*RkC8<Rm z3=9lN1SbOn!!3^FoYcg;_>?4G1_p*=9tH*mCPp4c9!54WEaI8Gn0c}w$e1E-kaD)< z{M_8klF2SCPDTjhz$S4g7o{eaq{f#PrxuAJ43lBx0vpA~SR^)i2g{rQkYTsjl1qz< z^NS#ca-^k}BxmI3rE0Pi@q^qb03swn_OXCWLw7SzVrfZ6YF<fZa$-rU{N#nK(u~rR z_p;VIfc&7zbc?klKRY!KVicMq*>dvJ<1_QL5$+R0xKDO+BZutdnQS}KL2fJpIRNay zB1w>Y_&}k|TqFZxgQcWEEHv}kLFVU|mY9Gn0EGe*BNrndBL^c3BOlx%HpU`(1_p*? z#>snGBqm>A_sfuDU|@L32r^F`WD5(zmRoE^sl}x^C0KpK1NLZ0zH4q`W{wlcN)d1b zLaYQ?3W-KG#v&z{g$e;R49$$Sj3tcC3=5bRGSo8FFfCwCVXR?HXI#j{$WX(yfMp>= z3X>#5EprWXI72W4BN#?9q%Z_CXfpd%X$HIcxH^X@1ULo<hx-S)Oy12YRbK>hy(TNz zo+2#4rwR2FIDWyw2aaU4;NypSC?K)8xIDio#UJD+kU}O#4sbxi6Q(lQKcI{N#*_Ow zLd`*;7~)n04npLJQUnDonoXRU#qs%hIhlE>QIn-Pr5RNwn{zG<#p3W=Y>5R0sd*`y ztdJ-GyB%cWEtZtTlEhn#Md-<sFFmy+9wZl^3W}Gs$@*N1j2e>zxnw0k$)ZX)g|U{Y zgrS*X0b>nQ4Py;M8q?%^%&PUF0WOXqt_q>Su0g>H!LEn^R<KpDR|xlT4RTd*^>y_0 z0r9Ov+={@-of+(`DDJ$}@&ah6MKKo_=AgTZKRF{YFFiFLrl=GYw4gN2#K^)3$^;yc zv{IxwxsgMpo`r#d!5O4Phk=0s;@E`@wTv~43z$+sPKKlv#s$of6jUUV!W7Jq!W_(? z$>LX~3QZwk|0}o!`TIhB1@Qz}*w!8qRft3Z3RsZK&7lPqxMUGZ&PYwphJ<E(YDH#o zNpU^MX`m>DBy}FfA}vsYV4mE_CLw0Tz`#%?1aUMdVb?I!Fr_n3zQ?Rm@9XIo>>3oJ zkeOGKui)z%9PH@s8myoJ4%YY}S7*-vPglPX9Y{FG2fO;YxCZIK6lyAzCFYc-7Hin+ zD1eYAJPvO0fc+F-oSK)CT6Bva!YfKm&Me4G%`3UZo|{@+oS2?k5Aqwb*SHJvi%WbV zl5HSAK}ui|cv(@T2PzN*i&#OWA!}MrVsUm66DU2ig9vbX1!)17xJA++F<B4+DqkRZ z5tLDiR6t@H3=H86MVcTcD6qgLBe@3@nnmF7=CH}lPbtkwwFBkpVg&{U1`Y-uMiwRx dCJuHEP7Y2E9u7_pJ`P?EZVny}ehw}kb^wx$T9N<& delta 1358 zcmeB?ekjhD&&$ijz`($;l<PtAX6}i6GK?h?wMzsUgBdiXUV<e2G#PI(rvI9Fpo^b{ zfq_Aju?R%1WGLdC9Lbnj&&|NVkPK1>!ys7>1_lOa1_p-WBnAeC5{3ngDU1slYZ+=7 z7BDSjsAVi+PGL%6Zf5EitYxZUTEMc9p_aLZaRF-$^Fl^OhH!=y1{MYuhGu3)hCB{K zhGM01Mn(n@jAUR0nZdRYLbESqV610IVF+f>WbrFvW?*2b;wnzgNX<>uD=y5r#aN`t zQN+f;z)-}_z`$^eExEL)IKSu?OMXFW-Yu4*)Wno1-qecJ<kFJV;^d;tf|6To$@#gt znI*SalXLQmQ#Dy`u_Wi`<rVRQw6mmT=A_<YE-uU|;sluqCb$^%7#MExCl{qAmZZj~ zB$gy5B^IZG)E5gdFfed2axn6MvCKaXW*){O(aDDyo1H*Gc8eWqHIiviBN-TOaU|!Y zCg#PbB#DCpk%xhSfr*iak%y5D42#4kcQ8%n0~u2!2679?uE{#gPDWr8zyv5xZ*fB% zR$81|q<}C<hLH<w4jW^U!sG?ab9})jfm{tX?iNQ{YDscNeqO33OOYhVd?^qClE1|Q zG78DbU~701OG`3R^GY(46H8JxC-<;OGpbBp!BVd!0ZK1Sw^&Q^vs3dRMu8m%Ccs+R za`MyTGxJO*2eOJXs!h(}ke%GZx&s_S;9v(ks7MK9Kgg4s%tfjoHpneS${-flC@=vw zj~!%Qerbu_<T^HaMvcky*s@*K85kH|GJ+H<g51M`Fya<lQEG8%P6<}0@qk?&lJA<E zn3>}<*^gb8QG0R@M{+R8yb!k{uwlsV(E?ckb_$pPyN5HgI6glwCo?ZK5)}SI;F#oM z<YVMuWP!#38)K2qWF^jp;i$0y_Vg{b#Dap<ycA7Vh!es72HA6q1(eu|Kq&(~Hu%z0 zOTbAnJ{9Eh)X5TDifsCzT*@@LkV8U550p;?QW$HQN*J0M7BJQ@Eo7Wr$fZ>87aHK= z7~-lB8tfVrtPt!PqEL`nTwI=Cl%im(pq`gn4&xfCD};Nv2DvJLEdWU-C#9qprxd3c z8iK6UOU}<#w+?YD0>?iy*y&N+NCp&%U<s;v{^X3ry!6y~m^CG!5aR=f7z-m0BF!3r zVv!%5vv0Ac<s=qo7cqg%0~I<&;6M}waY0!Joa&2IKwLEtp#dVaL4*#70EJ2s$T(0K z+B1MiC;^T<4x8Nkl+v73J5b^&mSJFE;9%fkWMSf9;$Y|C;^5@q<ly1p<ly7r<>2Ar F2LLyK7ry`i diff --git a/Lab2/__pycache__/server.cpython-310.pyc b/Lab2/__pycache__/server.cpython-310.pyc index 82e18c8df79c6d8b9169717568d9d4daa15f5fab..b5132ee498d8e00d6aa1e48821d75a3350b8b256 100644 GIT binary patch delta 1352 zcmZ1^c|?{kpO=@5fq{WxQQo6uAK{67GK@wOwZA*0a%6F)$fxk6Gp4ZiGNmY_D7G*( zGe!xeD5WU3FhmKbvZttIGZjrwQBCED7fIz<Ai9u&ks*aC7>qU5CVMenXXKu;jl zVDmvHCML#}laH`eF-lIhXH8~QnY@^Fp|~sq149uXh>&AoV9;bMVg|A0Cr7gxGAd8* zWm94_p1grgo>61+1-1l3b&w<vh)@L)U@a_AEg%7Y1_p*G_MH6m`25lmO~xYS$%*VT z;w}sf48<T_984UHe2grNEKDp+MVgbRu<O@@tYc+hU~mShna9AuP{Oc)aUnx3LkeRJ zLm5MnZweEXW`@uuOf?KCOp*-Ej43SHEJfa6J~I-Zc>zleLkgoL!$QU)&l2VZtT0|J zV+r#DHaHJ#PQ4^U4O2E#k$VaA0`?ll8io{RNrr_?MXo8V!3-&E!3-(v!3-%J!3-&! z5WXgtUlAx2qPX*OQUVf-i_7ziQlhx?Qp;hSA}LTnG8OSMFfhD40}2&TFs+0LWKL#e zU?>6wo+em8gduYpBLjmb2T~v^O)lh6%!}eL$<I#B3(1F>dy79gBQY;MHNF69t0r@i zGRSyg5Fr90IN<~+ITh(MFfasw!c~TWfq{cbf>D8y4-9!21)#A2iU}5`BK^q^IAVCg z&SEYCMPiZOWKT|MHjqz?geNDm3s0`)6cJ7b8OFiDz`(`C!pOzQ!c=59c?stODVXP` zz&*zTF-3RsJT7T1h$$eqf!uqGwJb5GG_?rLu?7qb3<Z-Pb1Bz@SXH9>iOI?NrFkX# z1^LA#@wutR#fj;u$)H>U!=R+Y21`15m`TSp1(I}3Qy@vlw1jB^Gd%hkYZ!}+OPIik z1r+CuMTR9z3s`Fy>mi8%lFAk`*D}>G73rt21T&x~2~AE&Qn<wqbzKyHYHng?PJB^n za%MqhYF<eZDBvNv%M9dw9S{LZ4e)#h5`cs^DCY<zXQU?AXU9W~Nv+5%E-8-U1_gjG z#Q)GJkK%!-C{E2wNiB+E1F1+&K?~7aJRo6M$TfqaP63<_I2hR&nf|jeG5zCXW?|%G z6a%FNaGnIEh9XAG$?V)KUDX&E7-oVru`n<&@Gy!n7J)==am2^xCT8Zv$A@T&-C|A4 zNi5DTVgmUB6dOe#wUC&10EyX5{>rVQq5@)SfCx<x0ZNrch9DLwqKhm+EVaoNJVrJa z3=9k+44^`SgOP)YkA;g7j5)X%`6Rg*`2@Ha`M9|l`NX&w`9NYqT#Ou|94u^%Jd7;= E0Ld#5j{pDw delta 719 zcmX>iyGW8RpO=@5fq{WxBG-dtEB=XmGK^9awZChm$fqc@FhmKZvZp9!GZl5GD5Y}5 z3#W1{5Lw8;$dJMm491$ulam;)GxAKfVw%S&xcMd%6BDE6<U1@?j8c=sS(6!+C+}um zC@#amz)-{oB4imD7&O_6m_cm0$;E7jj7pQ2vMDi|Og_OT&!|561zUol8c31{M5urW zuof1m7LWix0|P@8drp3Oe12((CS#G(<VtoKaaRTghGLK|4kivpK1LQs7A6*^B8|yw z*!3shX5~$dVPIe=VOYSpkfD|#g|UXAjG;&;g$YVCL+BEw1<W-JDU6Z~3mJ>FN|+X~ zz<9NcB}@xgYZz-7QkW$f7BUrSq_6}tq%Z_Cq_74vq_71uXtMhisZH+Zkd@bDD&l2e zV0d{3<XD6k;J$v#p(uKbKRF{YFFiHBAhEc(JijPKlc`8)G9#C`QjsnL14AIlGeQgu z3>-`njC_oIi~>w7j4c0Im|2*LbSKwv#%O}f)nqOLg+-AL0|Ub?;q=s!_|oFkqWF}= zlEnDb+{DZrO{OBX$&6e&!U-VrI2afhxR_WNxfofPiu5Nta6OQMIyG|&BLhPb*hm(L zk=m23xTU$lF(C}{hSKB&ZYfqh1_p-A$@SdIjCzw5cvmW`GB7aIfQ)8gU|`^36k#j^ ziQM9dkIzla%!`i?(G;EhhF6Bo8f1j|WIjF>d1Vk&9Ykn=2#{xs^g%3;*+r_8!}yFW zOc)p#L>NHv$ic|L#K+3T$j8FP$j8CO$S29g$S1(X$j8ma$j1i};}GItVPoWBWcddG DE-Hz< diff --git a/Lab2/database.db b/Lab2/database.db index 879c356c93d13a5af64b630499fc883bd6de459a..1b858e61be87b732faaf70f226460eae399e4454 100644 GIT binary patch delta 363 zcmZp8z}WDBae_3X^F$eER%ZsiaIcLii}^WO`F;7@`9=6{Y!(#g;bY<VWw4p-FR#m8 zmXel|R$N@3Uz9TWhFmcZ|3M2z4oQAdNnu09$rI&8CqIxE<jN~6NQ9`_+%8{hAi}{X z%D}&!znI^I?=9bUzD7Q8KGDsB0)KhyO*mK?j13i&6B82?i&KhI3=MM=GjsHk^K+Av tQqoaHGE#GL@)b%_i%U${$<oD!p(~OY%UChA5ut1I+c-8sUJeE%004yOap3>} delta 105 zcmZp8z}WDBae_3X`9v9KR&xfuXp@a8i}^X3`Mvqu`9=6{Y!*~F!8iGaTrrCkBZuVV z1#-IFspSQU#l_|MMJa}x+vRHwcv$$}GVpKbFXlJld%Ias;V$3iw{dKOyetez005wL B9R>gZ diff --git a/Lab2/database_helper.py b/Lab2/database_helper.py index 99a97b0..a14e796 100644 --- a/Lab2/database_helper.py +++ b/Lab2/database_helper.py @@ -76,6 +76,17 @@ def tokenToEmail(token): return None +def tokenToPassword(token): + try: + email = tokenToEmail(token) + cursor = get_db().cursor() + cursor.execute("SELECT PASSWORD FROM USERS WHERE EMAIL=?;", [email]) + password = cursor.fetchone()[0] + return password + except: + return None + + def is_online(token): try: cursor = get_db().cursor() @@ -103,26 +114,27 @@ def get_data_email(email): return None - def change_password(email, newpassword): try: - sql = "UPDATE USERS SET password = 'newpassword1' WHERE email = 'cbdgsdsd11mail.com';" - get_db().execute(sql) + sql = "UPDATE USERS SET PASSWORD = ? WHERE EMAIL = ?;" + get_db().execute(sql, (newpassword, email)) get_db().commit() return True except: return False + def check_email_exists(email): cursor = get_db().cursor() cursor.execute("SELECT email FROM USERS WHERE email=?", (email,)) result = cursor.fetchone() return True if result else False + def postMessage(email_sender, email_recipient, message): try: get_db().execute("INSERT into MESSAGES (EMAIL_RECIPIENT, EMAIL_SENDER, MESSAGE) values(?, ?, ?)", [email_recipient, email_sender, message]) get_db().commit() return True except: - return False \ No newline at end of file + return False diff --git a/Lab2/server.py b/Lab2/server.py index 28abb6e..471f7d0 100644 --- a/Lab2/server.py +++ b/Lab2/server.py @@ -81,13 +81,21 @@ def sign_out(): def change_password(): data = request.get_json() if('token' in data and 'oldPassword' in data and 'newPassword' in data): - if database_helper.is_online(data['token']): - email = database_helper.tokenToEmail(data['token']) - #check old password is good - if database_helper.change_password(email, data['newPassword']): - return "", 204 + if(len(data['oldPassword']) > 5 and len(data['newPassword']) > 5): + if database_helper.is_online(data['token']): + email = database_helper.tokenToEmail(data['token']) + password = database_helper.tokenToPassword(data['token']) + if(data['oldPassword'] == password): + if database_helper.change_password(email, data['newPassword']): + return "", 204 + else: + return "", 400 + else: + return "", 403 + else: + return "", 401 else: - return "", 401 + return "", 406 else: return "", 400 @@ -123,7 +131,7 @@ def get_user_data_email(token, email): @app.route("/account/post_message", methods = ['POST']) def post_message(): data = request.get_json() - if('token' in data + if('token' in data and 'message' in data and 'email_recipient' in data): email_sender = database_helper.tokenToEmail(data['token']) @@ -137,10 +145,10 @@ def post_message(): else: return "", 404 else: - return "", 404 + return "", 403 else: - return "", 401 - + return "", 400 + def generate_token(): characters = string.ascii_letters + string.digits -- GitLab