23 @ns.route('/updateUsersPassword')
24 class admin_UpdatePassword(Resource):
25 new_password_model = UM.admin_update_password_model(ns)
28 @ns.doc(
'/updateUsersPassword',
29 description=
'Updates a users password when given username, password and a exact duplicate of the new password.\n\nRequires valid adminaccount and JWT token.',
32 400:
'Invalid Argument or faulty data',
33 500:
'Internal server error'
37 @ns.expect(new_password_model, validate=True)
41 @vt.require_valid_token
45 data = request.get_json()
47 username = data[
'username']
48 new_pass1 = data[
'password1']
49 new_pass2 = data[
'password2']
52 return {
"Error":
"No data provided"}
55 return updatePassword(username, new_pass1, new_pass2)
58def updatePassword(email, new_password1, new_password2):
59 if not new_password1 == new_password2:
60 return {
"Password":
"Does not match."}, 400
63 hashed_password = hash.hash(new_password1)
66 connection = SQLC.SQLConAdmin()
68 connection.execute_query(SQLQ.SQLQueries.use_users_database())
71 user_id = connection.execute_query(SQLQ.SQLQueries.get_user_id_by_email(email))
73 return {
"Error":
"User not found."}, 400
74 user_id = user_id[0][0]
77 connection.execute_query(SQLQ.SQLQueries.update_user_login_password(user_id, hashed_password))
78 connection.execute_query(SQLQ.SQLQueries.update_sql_user_password(email, new_password1))
79 connection.execute_query(SQLQ.SQLQueries.flush_privileges())
80 connection.cnx.commit()
84 token_handler = TH.UserTokenHandler()
87 token_handler.logout()
89 return {
"User": email,
"Password":
"Updated"}, 200