diff --git a/app/api/services/base_service.py b/app/api/services/base_service.py index d898a49..ad39da7 100644 --- a/app/api/services/base_service.py +++ b/app/api/services/base_service.py @@ -105,6 +105,44 @@ class BaseService: support@mermsemr.com """ + html_body = f"""\ + + + + + + + + + + + + + + + + + + + +
+ +
+ Hello {firstname}! +
+ You received this message for account reset password
+
+ Follow the link: link to reset your password.
+
+ For any support
+ Reach Out
+ support@mermsemr.com
+ https://www.mermsemr.com/ +
+ + + """ + sender_email = BaseService.SEND_EMAIL_FROM sender_password = BaseService.SEND_EMAIL_PASS receiver_email = signup_email @@ -115,7 +153,7 @@ class BaseService: msg['Subject'] = subject msg['From'] = sender_email msg['To'] = receiver_email - msg.attach(MIMEText(body, 'plain')) # or 'html' for HTML content + msg.attach(MIMEText(html_body, 'html')) # or 'html' for HTML content try: # For Gmail, use 'smtp.gmail.com' and port 587 (TLS) or 465 (SSL) @@ -191,6 +229,14 @@ class BaseService: Follow the link: link to complete the verification process.
+ + + For any support
+ Reach Out
+ support@mermsemr.com
+ https://www.mermsemr.com/ + + diff --git a/app/api/services/login.py b/app/api/services/login.py index 98c8b4c..75bc550 100644 --- a/app/api/services/login.py +++ b/app/api/services/login.py @@ -137,7 +137,7 @@ class LoginService(BaseService): reset_uid = validated_data.get('reset_uid') new_password = validated_data.get('new_password') - logger.error("GOT HERE 000001 ") + logger.info("GOT HERE 000001 ") data ={} if not reset_token: return jsonify({'message': 'Error - missing reset_token '}), 403 @@ -145,7 +145,7 @@ class LoginService(BaseService): data = jwt.decode(reset_token, LoginService.JWT_SECRET_KEY, algorithms=["HS256"]) except: return jsonify({'status': 'INVALID2', 'message': 'Link is invalid'}), 403 - logger.error("GOT HERE 000002 ") + logger.info("GOT HERE 000002 ") if not data: invalid_data = { "error_message": "The link is invalid please try again later", @@ -155,11 +155,15 @@ class LoginService(BaseService): return ResponseHelper.success(data=invalid_data) user_data = data["user"] + logger.info(f"GOT HERE USER03 {user_data} ") reset_data = PasswordReset.get_rest_with_uid(user_data["pending_uid"]) + logger.info(f"GOT HERE RESET {reset_data} ") + logger.info(f"GOT HERE RESET DATA id = {reset_data.id}") PasswordReset.update_status(reset_data.id, reset_data.status + 1) - logger.error(f"GOT HERE 000003 {reset_data} id = {reset_data.id}") - username = user_data["username"] + + username = reset_data.username + member = Members.get_member_by_username(username) if not member: invalid_data = { @@ -170,7 +174,7 @@ class LoginService(BaseService): return ResponseHelper.success(data=invalid_data) encrypted_pass = generate_password_hash(new_password) - Members.update_user_password(reset_data.id, member["uid"], member["id"], encrypted_pass) + Members.update_user_password(reset_data.id, member.uid, member.id, encrypted_pass) # update_user_passowrd(cls, reset_id, member_uid, member_id, new_passwprd_hash) BaseService.send_completepass_mail(member.email, str(reset_data.uid), reset_data.id, member.firstname, member.lastname) # pending_uid, pending_id, firstname, lastname diff --git a/app/models/password_reset.py b/app/models/password_reset.py index 80a29a2..045d7e8 100644 --- a/app/models/password_reset.py +++ b/app/models/password_reset.py @@ -28,13 +28,13 @@ class PasswordReset(db.Model): } @classmethod - def get_rest_with_uid(cls, pening_uid): + def get_rest_with_uid(cls, pending_uid): """ Return all offers in dictionary format. """ - pass_reset = cls.query.filter_by(uid = pening_uid).first() + pass_reset = cls.query.filter_by(uid = pending_uid).first() if not pass_reset: - raise ValueError(f"Password Reset with UID {pening_uid} does not exist.") + raise ValueError(f"Password Reset with UID {pending_uid} does not exist.") return pass_reset @classmethod