Add admin card reader monitor

This commit is contained in:
Dorian
2026-05-20 14:51:32 -05:00
parent 496cf8e9d6
commit 320e3ef53c
3 changed files with 361 additions and 1 deletions

View File

@@ -771,6 +771,18 @@ const updateMemberStatus = async (membershipId, status) => {
const serializeAdminMember = (member) => ({ ...member, accessStatus: memberAccessStatus(member) })
const serializeAccessLog = (log, allMembers = members()) => {
const member = log.membershipId ? allMembers.find((item) => item.membershipId === log.membershipId) : null
return {
...log,
member: member ? {
membershipId: member.membershipId,
fullName: member.fullName,
status: memberAccessStatus(member),
} : null,
}
}
const serializeAdmin = (pubkey = '') => {
const allMembers = members()
return {
@@ -783,7 +795,7 @@ const serializeAdmin = (pubkey = '') => {
membershipMonthlyUsd,
membershipPeriodOptions,
cards: state.cards.map(({ cardSecretHash, uidHash, ...card }) => card),
accessLogs: state.accessLogs.slice(0, 200),
accessLogs: state.accessLogs.slice(0, 200).map((log) => serializeAccessLog(log, allMembers)),
}
}
@@ -1315,6 +1327,7 @@ const handleApi = async (req, res) => {
doorId,
decision: allow && unlock.ok ? 'allow' : 'deny',
reason,
unlock,
})
return json(res, allow && unlock.ok ? 200 : 403, {
success: allow && unlock.ok,
@@ -1561,6 +1574,7 @@ const handleApi = async (req, res) => {
doorId,
decision: allow ? 'allow' : 'deny',
reason: unlock.attempted && !unlock.ok ? `${reason}_${unlock.reason}` : reason,
unlock,
})
if (card) await saveCards()
return json(res, 200, {