[ice] add PIN auth: 2-step name+last4 login gate against groomsmen list
This commit is contained in:
44
client/src/groommen.js
Normal file
44
client/src/groommen.js
Normal file
@@ -0,0 +1,44 @@
|
||||
// Groomsmen: name (lowercase) → last 4 digits of phone number
|
||||
export const GROOMSMEN = {
|
||||
jon: '7506',
|
||||
toph: '8116',
|
||||
hans: '6681',
|
||||
janno: '2809',
|
||||
jt: '3286',
|
||||
Cordero: '0379', // no last name given
|
||||
lester: '8014',
|
||||
nick: '6044',
|
||||
david: '5993',
|
||||
poalo: '9922', // likely "Paolo"
|
||||
justin: '2329',
|
||||
benstewart: '1957',
|
||||
joseph: '4976',
|
||||
francis: '4934',
|
||||
// Groom
|
||||
chris: '0000', // Chris Mayor — placeholder; update with real last 4 if needed
|
||||
}
|
||||
|
||||
// Reverse map: last4 → display name
|
||||
export const GROOMSMEN_BY_PIN = Object.fromEntries(
|
||||
Object.entries(GROOMSMEN).map(([name, pin]) => [pin, name])
|
||||
)
|
||||
|
||||
/**
|
||||
* Validate a name + 4-digit PIN combination.
|
||||
* Name must match a key in GROOMSMEN (case-insensitive).
|
||||
* PIN must match that entry's value.
|
||||
*/
|
||||
export function validateGroomsman(name, pin) {
|
||||
const key = name.trim().toLowerCase().replace(/\s+/g, '')
|
||||
const entry = GROOMSMEN[key]
|
||||
if (!entry) return false
|
||||
return entry === pin.trim()
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve the canonical display name for a validated groomsman.
|
||||
*/
|
||||
export function getCanonicalName(name) {
|
||||
const key = name.trim().toLowerCase().replace(/\s+/g, '')
|
||||
return GROOMSMEN[key] ? key : name.trim()
|
||||
}
|
||||
Reference in New Issue
Block a user