Public Access
Visitor sign in kiosk: multi-site, badge printing, WWCC expiry warnings, admin accounts with 2FA
This commit is contained in:
+8
-3
@@ -141,6 +141,8 @@ router.post('/signin', signInLimiter, (req, res) => {
|
||||
const checkType = isFrequent ? frequent.check_type : clean(body.checkType, 10).toUpperCase();
|
||||
const checkNumber = clean(isFrequent ? frequent.check_number : body.checkNumber, 40);
|
||||
const checkExpiry = isFrequent ? frequent.check_expiry : clean(body.checkExpiry, 20);
|
||||
// Optional: plenty of visitors are not from anywhere in particular.
|
||||
const company = clean(isFrequent ? frequent.company : body.company, 80);
|
||||
const visitReason = clean(body.visitReason, 120);
|
||||
|
||||
if (!firstName) return res.status(400).json({ error: 'First name is required.' });
|
||||
@@ -184,9 +186,10 @@ router.post('/signin', signInLimiter, (req, res) => {
|
||||
const info = db
|
||||
.prepare(
|
||||
`INSERT INTO visits
|
||||
(site_id, site_name, visitor_type, frequent_visitor_id, first_name, last_name, phone, email,
|
||||
check_type, check_number, check_expiry, host_id, host_name, visit_reason, photo_path, signed_in_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||
(site_id, site_name, visitor_type, frequent_visitor_id, first_name, last_name, company,
|
||||
phone, email, check_type, check_number, check_expiry, host_id, host_name, visit_reason,
|
||||
photo_path, signed_in_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||
)
|
||||
.run(
|
||||
site.id,
|
||||
@@ -195,6 +198,7 @@ router.post('/signin', signInLimiter, (req, res) => {
|
||||
isFrequent ? frequent.id : null,
|
||||
firstName,
|
||||
lastName,
|
||||
company || null,
|
||||
phone || null,
|
||||
email || null,
|
||||
checkType,
|
||||
@@ -358,6 +362,7 @@ router.post('/frequent/auth', pinLimiter, (req, res) => {
|
||||
lastName: person.last_name,
|
||||
checkType: person.check_type,
|
||||
checkNumber: person.check_number,
|
||||
company: person.company,
|
||||
defaultHostId: person.default_host_id,
|
||||
// Tells the kiosk it can skip the camera step entirely.
|
||||
hasPhoto: Boolean(person.photo_path),
|
||||
|
||||
Reference in New Issue
Block a user