password reset
This commit is contained in:
@@ -105,6 +105,44 @@ class BaseService:
|
||||
support@mermsemr.com
|
||||
"""
|
||||
|
||||
html_body = f"""\
|
||||
<html>
|
||||
<head></head>
|
||||
<body style="font-size:14px;line-height:1.5;">
|
||||
<table width="550px" border="0" cellpadding="3" cellspacing="3" background-color="#F0F8FF" style="font-size:16px">
|
||||
<tr>
|
||||
<td style="text-align:center">
|
||||
<img style="width:150px; height:auto;" src="mermsemr.com/images/logo-pink.png" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Hello <b>{firstname}!</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
You received this message for account reset password<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Follow the link: <a href="{link_url}">link</a> to reset your password.<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
For any support<br>
|
||||
Reach Out<br>
|
||||
support@mermsemr.com<br>
|
||||
https://www.mermsemr.com/
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
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: <a href="{link_url}">link</a> to complete the verification process.<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
For any support<br>
|
||||
Reach Out<br>
|
||||
support@mermsemr.com<br>
|
||||
https://www.mermsemr.com/
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user