Files
gatekeeper/app/services/settings.py
2026-07-31 01:50:08 +02:00

53 lines
1.6 KiB
Python

import logging
import os
from functools import lru_cache
logger = logging.getLogger(__name__)
@lru_cache(1)
def disable_cards_check():
if os.environ.get("DISABLE_CARDS", "").lower() in ("1", "true"):
return True
for env in (
"MIFARE_APP_MASTER_KEY",
"MIFARE_ACL_READ_BASE_KEY",
"MIFARE_ACL_WRITE_BASE_KEY",
):
if not os.getenv(env):
logger.critical(
f"Missing environment variable for scanner start: {env} \n Card scanner and related funcionality is disabled!" # noqa: E501
)
return True
return False
disable_cards = disable_cards_check()
if not disable_cards:
mifare_app_master_key = os.getenv("MIFARE_APP_MASTER_KEY")
mifare_acl_read_base_key = os.getenv("MIFARE_ACL_READ_BASE_KEY")
mifare_acl_write_base_key = os.getenv("MIFARE_ACL_WRITE_BASE_KEY")
def verify_settings():
important_envs = ["SECRET_KEY"]
other_envs = ["SQLALCHEMY_DATABASE_PATH", "LOCK_PIN", "UNLOCK_PIN", "MOCK_GPIO"]
for setting in important_envs:
if not os.getenv(setting):
raise ValueError(
f"Missing critical environment variable {setting}. Stopping..."
)
for setting in other_envs:
if setting not in os.environ:
logger.warning(f"Env var {setting} not set. Continuing with defaults.")
verify_settings()
secret_key = os.getenv("SECRET_KEY")
sqlalchemy_database_path = os.getenv("SQLALCHEMY_DATABASE_PATH")
lock_pin = os.getenv("LOCK_PIN")
unlock_pin = os.getenv("UNLOCK_PIN")
mock_gpio = os.getenv("MOCK_GPIO")