implemented password changing
This commit is contained in:
parent
0f6cbc0b24
commit
318079dca8
17
app/UI.hs
17
app/UI.hs
|
@ -116,9 +116,22 @@ servMenu x = menu x
|
|||
|
||||
editPassMenu :: String -> S.StateT Status IO ()
|
||||
editPassMenu x = menu (x ++ " : Edit Password")
|
||||
[ ( "cancel", servMenu x )
|
||||
[ ( "generate new password", changeSalt x )
|
||||
, ( "cancel", servMenu x )
|
||||
]
|
||||
|
||||
changeSalt :: String -> S.StateT Status IO ()
|
||||
changeSalt x = do
|
||||
db <- S.gets $ view database
|
||||
case pwGetService x db of
|
||||
Nothing -> mainMenu
|
||||
Just serv -> do
|
||||
salt <- run newPWSalt
|
||||
let serv' = set pwSalt salt serv
|
||||
S.modify $ over database (pwSetService x serv')
|
||||
showPass x
|
||||
servMenu x
|
||||
|
||||
changeMasterPass :: S.StateT Status IO ()
|
||||
changeMasterPass = do
|
||||
oldP <- S.gets $ view masterPass
|
||||
|
@ -154,7 +167,7 @@ showPass x = do
|
|||
|
||||
buildData :: S.StateT Status IO PWData
|
||||
buildData = do
|
||||
d <- S.StateT $ return . newPWData
|
||||
d <- run newPWData
|
||||
req $ reqIf (confirm "would you like to change the default policy?")
|
||||
(do
|
||||
let p = d^.pwPolicy
|
||||
|
|
|
@ -20,7 +20,7 @@ License along with this program. If not, see
|
|||
|
||||
-}
|
||||
|
||||
module Util (menu, req, tryReq, confirm) where
|
||||
module Util (menu, run, req, tryReq, confirm) where
|
||||
|
||||
import Control.Monad (join)
|
||||
import Control.Monad.Trans.Class (lift)
|
||||
|
@ -52,6 +52,9 @@ menuItem (str, x) = (str, return x)
|
|||
reqState :: Request (S.StateT s IO a) -> S.StateT s IO a
|
||||
reqState = join . req
|
||||
|
||||
run :: Monad m => (s -> (a, s)) -> S.StateT s m a
|
||||
run f = S.StateT $ return . f
|
||||
|
||||
req :: Request a -> S.StateT s IO a
|
||||
req = lift . fmap fromJust . runRequest . required
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user