Added seret password starter

This commit is contained in:
CHIEFSOFT\ameye
2025-08-02 06:29:03 -04:00
parent 73a1839f92
commit a385954ef6
2 changed files with 100 additions and 1 deletions
+16 -1
View File
@@ -44,12 +44,27 @@ def serve_paths(filename):
@api.route("/panel/auth/reset", methods=["POST"])
@jwt_required()
# @jwt_required()
def merms_reset():
data = request.get_json()
response = LoginService.process_reset(data)
return response
@api.route("/panel/auth/resetverify", methods=["POST"])
# @jwt_required()
def merms_resetverify():
data = request.get_json()
response = LoginService.verify_reset(data)
return response
@api.route("/panel/auth/resetcomplete", methods=["POST"])
# @jwt_required()
def merms_resetcomplete():
data = request.get_json()
response = LoginService.complete_reset(data)
return response
@api.route("/panel/Login", methods=["POST"])
@jwt_required()
+84
View File
@@ -63,7 +63,91 @@ class LoginService(BaseService):
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def verify_reset(data):
try:
with db.session.begin():
validated_data = LoginService.validate_data(data, ResetPassStart())
username = validated_data.get('username')
member = Members.get_member_by_username(username)
if not member:
invalid_data = {
"error_message": "You will get email to continue the process if the account is valid",
"reset_message": "",
"message_key": "invalid_username_or_password",
}
return ResponseHelper.success(data=invalid_data)
reset_data = PasswordReset.create_reset(username=username)
BaseService.send_resetpass_mail(member.email, str(member.uid), member.id, "FF",
"LL") # pending_uid, pending_id, firstname, lastname
response_data = {
"error_message": "",
"reset_message": "Check your email to continue password reset.",
"message_key": "check_your_email_message",
}
return ResponseHelper.success(data=response_data)
except ValidationError as err:
logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.unprocessable_entity(result_description="Validation exception")
except ValueError as err:
logger.error(f"{getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.error(result_description=str(err))
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def complete_reset(data):
try:
with db.session.begin():
validated_data = LoginService.validate_data(data, ResetPassStart())
username = validated_data.get('username')
member = Members.get_member_by_username(username)
if not member:
invalid_data = {
"error_message": "You will get email to continue the process if the account is valid",
"reset_message": "",
"message_key": "invalid_username_or_password",
}
return ResponseHelper.success(data=invalid_data)
reset_data = PasswordReset.create_reset(username=username)
BaseService.send_resetpass_mail(member.email, str(member.uid), member.id, "FF",
"LL") # pending_uid, pending_id, firstname, lastname
response_data = {
"error_message": "",
"reset_message": "Check your email to continue password reset.",
"message_key": "check_your_email_message",
}
return ResponseHelper.success(data=response_data)
except ValidationError as err:
logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.unprocessable_entity(result_description="Validation exception")
except ValueError as err:
logger.error(f"{getattr(err, 'messages', str(err))}")
db.session.rollback()
return ResponseHelper.error(result_description=str(err))
except Exception as e:
logger.error(f"An error occurred: {str(e)}", exc_info=True)
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def process_request(data):