Compare commits
4 Commits
d0ad6395b5
...
0a97f610a4
| Author | SHA1 | Date | |
|---|---|---|---|
| 0a97f610a4 | |||
| 5a0563df94 | |||
| 7597b96dae | |||
| f37483e2f0 |
@ -35,6 +35,12 @@ var (
|
|||||||
backOption = []byte("0")
|
backOption = []byte("0")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Define the regex patterns as constants
|
||||||
|
const (
|
||||||
|
phoneRegex = `(\(\d{3}\)\s?|\d{3}[-.\s]?)?\d{3}[-.\s]?\d{4}`
|
||||||
|
pinPattern = `^\d{4}$`
|
||||||
|
)
|
||||||
|
|
||||||
// FlagManager handles centralized flag management
|
// FlagManager handles centralized flag management
|
||||||
type FlagManager struct {
|
type FlagManager struct {
|
||||||
parser *asm.FlagParser
|
parser *asm.FlagParser
|
||||||
@ -82,15 +88,17 @@ func NewHandlers(appFlags *asm.FlagParser, userdataStore db.Db, accountService s
|
|||||||
return h, nil
|
return h, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define the regex pattern as a constant
|
|
||||||
const pinPattern = `^\d{4}$`
|
|
||||||
|
|
||||||
// isValidPIN checks whether the given input is a 4 digit number
|
// isValidPIN checks whether the given input is a 4 digit number
|
||||||
func isValidPIN(pin string) bool {
|
func isValidPIN(pin string) bool {
|
||||||
match, _ := regexp.MatchString(pinPattern, pin)
|
match, _ := regexp.MatchString(pinPattern, pin)
|
||||||
return match
|
return match
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isValidPhoneNumber(phonenumber string) bool {
|
||||||
|
match, _ := regexp.MatchString(phoneRegex, phonenumber)
|
||||||
|
return match
|
||||||
|
}
|
||||||
|
|
||||||
func (h *Handlers) WithPersister(pe *persist.Persister) *Handlers {
|
func (h *Handlers) WithPersister(pe *persist.Persister) *Handlers {
|
||||||
if h.pe != nil {
|
if h.pe != nil {
|
||||||
panic("persister already set")
|
panic("persister already set")
|
||||||
@ -255,7 +263,6 @@ func (h *Handlers) SaveTemporaryPin(ctx context.Context, sym string, input []byt
|
|||||||
}
|
}
|
||||||
|
|
||||||
flag_incorrect_pin, _ := h.flagManager.GetFlag("flag_incorrect_pin")
|
flag_incorrect_pin, _ := h.flagManager.GetFlag("flag_incorrect_pin")
|
||||||
|
|
||||||
accountPIN := string(input)
|
accountPIN := string(input)
|
||||||
|
|
||||||
// Validate that the PIN is a 4-digit number
|
// Validate that the PIN is a 4-digit number
|
||||||
@ -768,6 +775,9 @@ func (h *Handlers) ValidateBlockedNumber(ctx context.Context, sym string, input
|
|||||||
}
|
}
|
||||||
blockedNumber := string(input)
|
blockedNumber := string(input)
|
||||||
_, err = store.ReadEntry(ctx, blockedNumber, utils.DATA_PUBLIC_KEY)
|
_, err = store.ReadEntry(ctx, blockedNumber, utils.DATA_PUBLIC_KEY)
|
||||||
|
if !isValidPhoneNumber(blockedNumber) {
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if db.IsNotFound(err) {
|
if db.IsNotFound(err) {
|
||||||
logg.Printf(logging.LVL_INFO, "Invalid or unregistered number")
|
logg.Printf(logging.LVL_INFO, "Invalid or unregistered number")
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
CATCH no_admin_privilege flag_admin_privilege 0
|
CATCH no_admin_privilege flag_admin_privilege 0
|
||||||
LOAD reset_account_authorized 6
|
LOAD reset_account_authorized 0
|
||||||
RELOAD reset_account_authorized
|
RELOAD reset_account_authorized
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
LOAD validate_blocked_number 0
|
INCMP _ 0
|
||||||
|
LOAD validate_blocked_number 20
|
||||||
RELOAD validate_blocked_number
|
RELOAD validate_blocked_number
|
||||||
INCMP pin_management 0
|
CATCH unregistered_number flag_unregistered_number 1
|
||||||
INCMP enter_others_new_pin *
|
INCMP enter_others_new_pin *
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
CATCH unregistered_number flag_unregistered_number 1
|
|
||||||
LOAD retrieve_blocked_number 0
|
LOAD retrieve_blocked_number 0
|
||||||
MAP retrieve_blocked_number
|
MAP retrieve_blocked_number
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
|
|||||||
@ -3,5 +3,5 @@ RELOAD reset_unregistered_number
|
|||||||
MOUT retry 1
|
MOUT retry 1
|
||||||
MOUT quit 9
|
MOUT quit 9
|
||||||
HALT
|
HALT
|
||||||
INCMP enter_other_number 1
|
INCMP _ 1
|
||||||
INCMP quit 9
|
INCMP quit 9
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user