session locking implemented

This commit is contained in:
Jonathan Lamothe 2018-12-09 14:31:58 -05:00
parent b27faf2948
commit a365632363

View File

@ -61,6 +61,7 @@ mainMenu :: S.StateT Status IO ()
mainMenu = do
menu "Main Menu"
[ ( "change master password", changeMasterPass )
, ( "lock session", lockSession )
, ( "quit", quit )
]
@ -71,6 +72,17 @@ changeMasterPass = do
S.modify $ set masterPass newP
mainMenu
lockSession :: S.StateT Status IO ()
lockSession = do
lift $ putStrLn "\nsession locked"
pass <- S.gets $ view masterPass
mx <- lift $ R.runRequest $ R.prompt "password: " $ R.reqPassword
case mx of
Nothing -> lockSession
Just x -> if x == pass
then mainMenu
else lockSession
quit :: S.StateT Status IO ()
quit = return ()