3 Commits

Author SHA1 Message Date
b9d52070f1 version 0.3.1 2021-05-14 13:55:01 -04:00
6585d63385 allow user to specify temporary alternate master password 2021-05-14 13:46:52 -04:00
258ebf29fe max version for transformers package
...because I'm an idiot.
2021-05-09 14:41:20 -04:00
4 changed files with 34 additions and 19 deletions

View File

@@ -1,5 +1,10 @@
# Changelog for passman # Changelog for passman
## 0.3.1
- set maximum version of transformers package
- allow user to specifiy a temporary master password to retrieve a password
## 0.3.0.2 ## 0.3.0.2
- more dependency versions - more dependency versions

View File

@@ -27,7 +27,7 @@ module UI (getMasterPass, mainMenu) where
import Control.Monad (when) import Control.Monad (when)
import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Class (lift)
import qualified Control.Monad.Trans.State as S import qualified Control.Monad.Trans.State as S
import Lens.Micro (over, set, (^.)) import Lens.Micro (over, set, (^.), (.~))
import Lens.Micro.Extras (view) import Lens.Micro.Extras (view)
import System.Console.HCL import System.Console.HCL
( Request ( Request
@@ -162,6 +162,7 @@ selectServ xs = menu "Select Service" $
servMenu :: String -> S.StateT Status IO () servMenu :: String -> S.StateT Status IO ()
servMenu x = menu x servMenu x = menu x
[ ( "show password", showPass x >> servMenu x ) [ ( "show password", showPass x >> servMenu x )
, ( "show alternate password", showAltPass x )
, ( "edit password", editPassMenu x ) , ( "edit password", editPassMenu x )
, ( "remove service", removeServ x ) , ( "remove service", removeServ x )
, ( "rename service", renameServ x ) , ( "rename service", renameServ x )
@@ -225,16 +226,25 @@ doEditPolicy x = withService x mainMenu $ \d -> do
editPassMenu x editPassMenu x
showPass :: String -> S.StateT Status IO () showPass :: String -> S.StateT Status IO ()
showPass x = do showPass x = withService x
lift $ putStrLn ""
withService x
(lift $ putStrLn "The service could not be found in the database.") $ (lift $ putStrLn "The service could not be found in the database.") $
\d -> do \d -> do
lift $ putStrLn ""
mp <- S.gets $ view masterPass mp <- S.gets $ view masterPass
lift $ putStrLn $ case pwGenerate mp d of lift $ putStrLn $ case pwGenerate mp d of
Nothing -> "The password data were not valid." Nothing -> "The password data were not valid."
Just pw -> "password for " ++ x ++ ": " ++ pw Just pw -> "password for " ++ x ++ ": " ++ pw
showAltPass :: String -> S.StateT Status IO ()
showAltPass srv = do
lift $ putStrLn ""
old <- S.gets $ view masterPass
Just new <- lift $ runRequest $ required $ prompt "alternate master password: " reqPassword
S.modify $ masterPass .~ new
showPass srv
S.modify $ masterPass .~ old
servMenu srv
-- TODO: refactor this monstrosity -- TODO: refactor this monstrosity
editPolicy :: PWPolicy -> Request PWPolicy editPolicy :: PWPolicy -> Request PWPolicy
editPolicy policy = do editPolicy policy = do

View File

@@ -1,5 +1,5 @@
name: passman name: passman
version: 0.3.0.2 version: 0.3.1
github: "jlamothe/passman" github: "jlamothe/passman"
license: LGPL-3 license: LGPL-3
author: "Jonathan Lamothe" author: "Jonathan Lamothe"
@@ -51,7 +51,7 @@ executables:
- passman - passman
- easy-file >= 0.2.2 && < 0.3 - easy-file >= 0.2.2 && < 0.3
- HCL >= 1.8 && < 1.9 - HCL >= 1.8 && < 1.9
- transformers >= 0.5.6.2 - transformers >= 0.5.6.2 && < 0.6
tests: tests:
passman-test: passman-test:

View File

@@ -4,10 +4,10 @@ cabal-version: 1.12
-- --
-- see: https://github.com/sol/hpack -- see: https://github.com/sol/hpack
-- --
-- hash: 2f7f0e04b3c25e738c5538d07d22d64c28c2a586ed82d577999d070ceafc41ba -- hash: e3bd0ca2b360b025666f4503e3115caaaed34c7719487d90ae4d5eb58f9621e9
name: passman name: passman
version: 0.3.0.2 version: 0.3.1
synopsis: a simple password manager synopsis: a simple password manager
description: Please see the README on GitHub at <https://github.com/jlamothe/passman#readme> description: Please see the README on GitHub at <https://github.com/jlamothe/passman#readme>
category: Security category: Security
@@ -70,7 +70,7 @@ executable passman
, microlens-th >=0.4.3.6 && <0.5 , microlens-th >=0.4.3.6 && <0.5
, passman , passman
, random >=1.1 && <1.2 , random >=1.1 && <1.2
, transformers >=0.5.6.2 , transformers >=0.5.6.2 && <0.6
default-language: Haskell2010 default-language: Haskell2010
test-suite passman-test test-suite passman-test