(20251128) Added creds-check for safety.

This commit is contained in:
2025-11-28 13:08:50 +05:30
parent 53007b7421
commit eed09b8135
2 changed files with 32 additions and 4 deletions
@@ -137,8 +137,8 @@ def init(blueprint_setup_state):
# @log_chain_to_mongo(attr_name = "logs_mongo") # @log_chain_to_mongo(attr_name = "logs_mongo")
@should_not_be_under_maintenance(attr_name = "is_under_maintenance") @should_not_be_under_maintenance(attr_name = "is_under_maintenance")
@validate_input( @validate_input(
# header_validator = lambda x: SimpleCosecCredentialsHeaders(**x), header_validator = lambda x: SimpleCosecCredentialsHeaders(**x),
# data_validator = lambda x: CosecInOutReportRequestData(**x) data_validator = lambda x: CosecInOutReportRequestData(**x)
) )
@handle_cancelled_request() @handle_cancelled_request()
async def in_out_report_generate( async def in_out_report_generate(
@@ -157,6 +157,20 @@ async def in_out_report_generate(
:return: A standard response structure. :return: A standard response structure.
""" """
# Check for authorization:
proj_dir = files.get_file_directory(include_filename = False)
proj_dir = files.get_parent_directory(proj_dir, depth = 4)
creds_file = os.path.join(proj_dir, "creds", "cosec.json")
creds = json.from_file(creds_file)["creds"]
if not (
inbound_headers.cosecUsername == creds["username"]
and inbound_headers.cosecPassword == creds["password"]
): return ResponseModel(
status_code = StatusCodes.FAILED,
http_code = HttpCodes.UNAUTHORIZED,
message = f"Unauthorized.",
)
# Start by assuming failure: # Start by assuming failure:
success = False success = False
report_data = None report_data = None
+16 -2
View File
@@ -149,8 +149,8 @@ async def close_browser() -> None:
# @log_chain_to_mongo(attr_name = "logs_mongo") # @log_chain_to_mongo(attr_name = "logs_mongo")
@should_not_be_under_maintenance(attr_name = "is_under_maintenance") @should_not_be_under_maintenance(attr_name = "is_under_maintenance")
@validate_input( @validate_input(
# header_validator = lambda x: SimpleCosecCredentialsHeaders(**x), header_validator = lambda x: SimpleCosecCredentialsHeaders(**x),
# data_validator = lambda x: CosecMusterRollReportRequestData(**x) data_validator = lambda x: CosecMusterRollReportRequestData(**x)
) )
@handle_cancelled_request() @handle_cancelled_request()
async def muster_roll_report_generate( async def muster_roll_report_generate(
@@ -169,6 +169,20 @@ async def muster_roll_report_generate(
:return: A standard response structure. :return: A standard response structure.
""" """
# Check for authorization:
proj_dir = files.get_file_directory(include_filename = False)
proj_dir = files.get_parent_directory(proj_dir, depth = 4)
creds_file = os.path.join(proj_dir, "creds", "cosec.json")
creds = json.from_file(creds_file)["creds"]
if not (
inbound_headers.cosecUsername == creds["username"]
and inbound_headers.cosecPassword == creds["password"]
): return ResponseModel(
status_code = StatusCodes.FAILED,
http_code = HttpCodes.UNAUTHORIZED,
message = f"Unauthorized.",
)
# Start by assuming failure: # Start by assuming failure:
success = False success = False
report_data = None report_data = None