From e55cf52faf7709d456a87a6ee63c914c1808e4e2 Mon Sep 17 00:00:00 2001 From: Dichi13 <diciganteng01@icloud.com> Date: Sun, 28 Apr 2019 15:24:48 +0700 Subject: [PATCH] added new endpoint : change-password --- modules/user.py | 31 ++++++++++++++++++++++++++++++- readme.md | 8 +++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/modules/user.py b/modules/user.py index 1c64761..9f96218 100644 --- a/modules/user.py +++ b/modules/user.py @@ -92,7 +92,7 @@ def add_new_user(): user_id = form.get("user_id") password = form.get("password") #hashing paswword - hash_pass = generate_password_hash(password); + hash_pass = generate_password_hash(password) username = form.get("username") name = form.get("name") role = form.get("role") @@ -136,6 +136,35 @@ def delete_user(user): "status": 200, "message": "User deleted successfully" }) + except Exception as e: + return jsonify({ + "status": 500, + "message": str(e) + }) + + +@user_route.route('/api/change-password', methods=["POST"]) +@validate_login_token(pass_user=True) +def change_password(user): + try: + current_password = request.get_json().get("current_password") + new_password = request.get_json().get("new_password") + is_password_match = check_password_hash(user.password, current_password) + + if len(user) > 0 and is_password_match: + hash_pass = generate_password_hash(new_password) + user.password = hash_pass + user.save() + + return jsonify({ + "status": 200, + "message": "Password changed" + }) + else: + return jsonify({ + "status": 500, + "message": "Password do not match" + }) except Exception as e: return jsonify({ "status": 500, diff --git a/readme.md b/readme.md index 514d1f3..3ece2f4 100644 --- a/readme.md +++ b/readme.md @@ -27,7 +27,7 @@ python app.py Berikut adalah API endpoints dari backend server VIS-MASY: -### Login dan Register +### User * #### /api/login Method: POST @@ -65,6 +65,12 @@ Berikut adalah API endpoints dari backend server VIS-MASY: Response: status, message Menghapus pengguna dengan user_id jika authorization header untuk admin, atau menghapus pengguna dalam authorization header jika user_id tidak diberikan. +* #### /api/change-password + Method: POST + Data request: Authorization header, current_password, new_password + Response: status, message + Mengubah kata sandi pengguna apabila current_password dan password pengguna yang tersimpan di basis data sudah cocok. Kata sandi yang baru adalah new_password yang telah di-*hash*. + ### Page (High Level) * #### /api/page/get-top -- GitLab