Check for disabled card and add tests

This commit is contained in:
2026-08-05 00:52:46 +02:00
parent bbb41e41ab
commit f635149d1f
2 changed files with 71 additions and 2 deletions
+9 -2
View File
@@ -2,7 +2,6 @@ import logging
from datetime import date, datetime, timedelta
from time import sleep
import lgpio
from sqlalchemy import exc
from sqlmodel import select
@@ -28,6 +27,7 @@ class DoorController:
self._chip = None
if not mock_factory:
import lgpio
self._chip = lgpio.gpiochip_open(0)
lgpio.gpio_claim_output(self._chip, unlock_pin, 1)
lgpio.gpio_claim_output(self._chip, lock_pin, 1)
@@ -42,7 +42,7 @@ class DoorController:
def open(self):
if self._mock:
self._is_open = True
logger.info("Dor unlocked.[MOCK]")
logger.info("Door unlocked.[MOCK]")
return
lgpio.gpio_write(self._chip, self._unlock_pin, 0)
@@ -52,6 +52,11 @@ class DoorController:
logger.info("Door unlocked!")
def close(self):
if self._mock:
self._is_open = False
logger.info("Door locked.[MOCK]")
return
lgpio.gpio_write(self._chip, self._lock_pin, 0)
sleep(0.4)
lgpio.gpio_write(self._chip, self._lock_pin, 1)
@@ -101,6 +106,8 @@ def checkAccess(key: str, db: Session):
current_weekday = datetime.weekday(date.today())
current_time = datetime.now()
card = db.exec(select(Card).where(Card.key == key)).one()
if not card.enabled:
return False
for auth in card.group.accessauths:
logger.info(f"checking auth: {auth.name}")
if not auth.is_active: