forked from urdt/ussd
Validate that the PIN is 4 digits
This commit is contained in:
parent
37ebc411b5
commit
b48760760b
@ -107,6 +107,13 @@ func (h *Handlers) SavePin(ctx context.Context, sym string, input []byte) (resou
|
||||
return res, err
|
||||
}
|
||||
|
||||
// Validate that the PIN is a 4-digit number
|
||||
if !isValidPIN(accountPIN) {
|
||||
res.FlagSet = append(res.FlagSet, models.USERFLAG_INCORRECTPIN)
|
||||
return res, nil
|
||||
}
|
||||
|
||||
res.FlagReset = append(res.FlagReset, models.USERFLAG_INCORRECTPIN)
|
||||
accountData["AccountPIN"] = accountPIN
|
||||
|
||||
err = h.accountFileHandler.WriteAccountData(accountData)
|
||||
@ -136,6 +143,11 @@ func (h *Handlers) VerifyPin(ctx context.Context, sym string, input []byte) (res
|
||||
return res, nil
|
||||
}
|
||||
|
||||
func isValidPIN(pin string) bool {
|
||||
match, _ := regexp.MatchString(`^\d{4}$`, pin)
|
||||
return match
|
||||
}
|
||||
|
||||
func codeFromCtx(ctx context.Context) string {
|
||||
var code string
|
||||
engine.Logg.DebugCtxf(ctx, "in msg", "ctx", ctx, "val", code)
|
||||
|
@ -3,5 +3,7 @@ CATCH account_creation_failed 22 1
|
||||
MOUT exit 0
|
||||
HALT
|
||||
LOAD save_pin 0
|
||||
RELOAD save_pin
|
||||
CATCH . 15 1
|
||||
INCMP quit 0
|
||||
INCMP confirm_create_pin *
|
||||
|
Loading…
Reference in New Issue
Block a user