Ensure that the user sets a PIN before proceeding to main

This commit is contained in:
Alfred Kamanda 2024-08-27 15:41:53 +03:00
parent 2a5f7517f4
commit 1d578209fc
Signed by: Alfred-mk
GPG Key ID: 7EA3D01708908703
6 changed files with 13 additions and 3 deletions

View File

@ -43,7 +43,7 @@ func main() {
state.FlagDebugger.Register(models.USERFLAG_INCORRECTDATEFORMAT,"INVALIDDATEFORMAT") state.FlagDebugger.Register(models.USERFLAG_INCORRECTDATEFORMAT,"INVALIDDATEFORMAT")
state.FlagDebugger.Register(models.USERFLAG_INVALID_RECIPIENT,"INVALIDRECIPIENT") state.FlagDebugger.Register(models.USERFLAG_INVALID_RECIPIENT,"INVALIDRECIPIENT")
state.FlagDebugger.Register(models.USERFLAG_PINMISMATCH,"PINMISMATCH") state.FlagDebugger.Register(models.USERFLAG_PINMISMATCH,"PINMISMATCH")
state.FlagDebugger.Register(models.USERFLAG_QUERYPIN,"QUERYPIN") state.FlagDebugger.Register(models.USERFLAG_PIN_SET,"PIN_SET")
state.FlagDebugger.Register(models.USERFLAG_INVALID_RECIPIENT_WITH_INVITE,"INVALIDRECIPIENT_WITH_INVITE") state.FlagDebugger.Register(models.USERFLAG_INVALID_RECIPIENT_WITH_INVITE,"INVALIDRECIPIENT_WITH_INVITE")
state.FlagDebugger.Register(models.USERFLAG_INVALID_AMOUNT,"INVALIDAMOUNT") state.FlagDebugger.Register(models.USERFLAG_INVALID_AMOUNT,"INVALIDAMOUNT")
state.FlagDebugger.Register(models.USERFLAG_UNLOCKFORUPDATE,"UNLOCKFORUPDATE") state.FlagDebugger.Register(models.USERFLAG_UNLOCKFORUPDATE,"UNLOCKFORUPDATE")

View File

@ -61,6 +61,13 @@ func (h *Handlers) CreateAccount(ctx context.Context, sym string, input []byte)
return res, err return res, err
} }
// if an account exists, set the flag and return
existingAccountData, err := h.accountFileHandler.ReadAccountData()
if existingAccountData != nil {
res.FlagSet = append(res.FlagSet, models.USERFLAG_ACCOUNT_CREATED)
return res, err
}
accountResp, err := server.CreateAccount() accountResp, err := server.CreateAccount()
if err != nil { if err != nil {
res.FlagSet = append(res.FlagSet, models.USERFLAG_ACCOUNT_CREATION_FAILED) res.FlagSet = append(res.FlagSet, models.USERFLAG_ACCOUNT_CREATION_FAILED)
@ -119,6 +126,7 @@ func (h *Handlers) VerifyPin(ctx context.Context, sym string, input []byte) (res
if bytes.Equal(input, []byte(accountData["AccountPIN"])) { if bytes.Equal(input, []byte(accountData["AccountPIN"])) {
res.FlagSet = []uint32{models.USERFLAG_VALIDPIN} res.FlagSet = []uint32{models.USERFLAG_VALIDPIN}
res.FlagReset = []uint32{models.USERFLAG_PINMISMATCH} res.FlagReset = []uint32{models.USERFLAG_PINMISMATCH}
res.FlagSet = append(res.FlagSet, models.USERFLAG_PIN_SET)
} else { } else {
res.FlagSet = []uint32{models.USERFLAG_PINMISMATCH} res.FlagSet = []uint32{models.USERFLAG_PINMISMATCH}
} }

View File

@ -13,7 +13,7 @@ const (
USERFLAG_INCORRECTPIN USERFLAG_INCORRECTPIN
USERFLAG_UNLOCKFORUPDATE USERFLAG_UNLOCKFORUPDATE
USERFLAG_INVALID_AMOUNT USERFLAG_INVALID_AMOUNT
USERFLAG_QUERYPIN USERFLAG_PIN_SET
USERFLAG_VALIDPIN USERFLAG_VALIDPIN
USERFLAG_PINMISMATCH USERFLAG_PINMISMATCH
USERFLAG_INCORRECTDATEFORMAT USERFLAG_INCORRECTDATEFORMAT

View File

@ -3,4 +3,5 @@ CATCH account_creation_failed 22 1
MOUT exit 0 MOUT exit 0
HALT HALT
LOAD save_pin 0 LOAD save_pin 0
INCMP quit 0
INCMP confirm_create_pin * INCMP confirm_create_pin *

View File

@ -2,5 +2,6 @@ CATCH select_language 8 0
CATCH terms 9 0 CATCH terms 9 0
LOAD check_account_status 0 LOAD check_account_status 0
CATCH account_pending 10 1 CATCH account_pending 10 1
CATCH create_pin 18 0
CATCH main 11 1 CATCH main 11 1
HALT HALT

View File

@ -4,4 +4,4 @@ MOUT yes 0
MOUT no 1 MOUT no 1
HALT HALT
INCMP create_pin 0 INCMP create_pin 0
INCMP _ * INCMP quit *