@@ -79,4 +79,47 @@ def del_user():
7979 user_db .drop_row ("Username" , username )
8080 user_db .close_db ()
8181 flash (str ("User {0} successfully deleted!" ).format (username ))
82- return render_template ("index.html" , title = 'Home' )
82+ return render_template ("index.html" , title = 'Home' )
83+
84+ @app .route ('/change_password' , methods = ['POST' , 'GET' ])
85+ def change_password ():
86+ if (request .method == 'POST' ):
87+ username = request .form ['username' ]
88+ password = request .form ['password' ]
89+ new_password = request .form ['new_password' ]
90+ user_db .open_db ()
91+ row = user_db .get_row ("Username" , username )
92+
93+ try :
94+ if (row != None and row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True ):
95+ user_db .update_row ("Password" , sha512_crypt .hash (new_password ), "Username" , username )
96+ user_db .close_db ()
97+ flash ("Password changed successfully!" )
98+ return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
99+ else :
100+ user_db .close_db ()
101+ flash ("Password change failed! The current password provided is incorrect!" )
102+ return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
103+ except :
104+ user_db .close_db ()
105+ flash ("Password change failed! The current password provided is incorrect!" )
106+ return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
107+
108+ @app .route ('/change_username' , methods = ['POST' , 'GET' ])
109+ def change_username ():
110+ if (request .method == 'POST' ):
111+ username = request .form ['username' ]
112+ new_username = request .form ['new_username' ]
113+ user_db .open_db ()
114+
115+ if (user_db .get_row ("Username" , new_username ) == None ):
116+ user_db .update_row ("Username" , new_username , "Username" , username )
117+ row = user_db .get_row ("Username" , new_username )
118+ user_db .close_db ()
119+ flash ("Username changed successfully!" )
120+ return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
121+ else :
122+ row = user_db .get_row ("Username" , username )
123+ user_db .close_db ()
124+ flash ("Username change failed! That username already exists!" )
125+ return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
0 commit comments