Compare commits
4 Commits
0.3.0.1
...
b9d52070f1
| Author | SHA1 | Date | |
|---|---|---|---|
| b9d52070f1 | |||
| 6585d63385 | |||
| 258ebf29fe | |||
| 1d6fbb5f40 |
@@ -1,5 +1,14 @@
|
||||
# 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
|
||||
|
||||
- more dependency versions
|
||||
|
||||
## 0.3.0.1
|
||||
|
||||
- updated to latest stackage LTS
|
||||
|
||||
38
app/UI.hs
38
app/UI.hs
@@ -27,7 +27,7 @@ module UI (getMasterPass, mainMenu) where
|
||||
import Control.Monad (when)
|
||||
import Control.Monad.Trans.Class (lift)
|
||||
import qualified Control.Monad.Trans.State as S
|
||||
import Lens.Micro (over, set, (^.))
|
||||
import Lens.Micro (over, set, (^.), (.~))
|
||||
import Lens.Micro.Extras (view)
|
||||
import System.Console.HCL
|
||||
( Request
|
||||
@@ -161,11 +161,12 @@ selectServ xs = menu "Select Service" $
|
||||
|
||||
servMenu :: String -> S.StateT Status IO ()
|
||||
servMenu x = menu x
|
||||
[ ( "show password", showPass x >> servMenu x )
|
||||
, ( "edit password", editPassMenu x )
|
||||
, ( "remove service", removeServ x )
|
||||
, ( "rename service", renameServ x )
|
||||
, ( "back", mainMenu )
|
||||
[ ( "show password", showPass x >> servMenu x )
|
||||
, ( "show alternate password", showAltPass x )
|
||||
, ( "edit password", editPassMenu x )
|
||||
, ( "remove service", removeServ x )
|
||||
, ( "rename service", renameServ x )
|
||||
, ( "back", mainMenu )
|
||||
]
|
||||
|
||||
editPassMenu :: String -> S.StateT Status IO ()
|
||||
@@ -225,15 +226,24 @@ doEditPolicy x = withService x mainMenu $ \d -> do
|
||||
editPassMenu x
|
||||
|
||||
showPass :: String -> S.StateT Status IO ()
|
||||
showPass x = do
|
||||
showPass x = withService x
|
||||
(lift $ putStrLn "The service could not be found in the database.") $
|
||||
\d -> do
|
||||
lift $ putStrLn ""
|
||||
mp <- S.gets $ view masterPass
|
||||
lift $ putStrLn $ case pwGenerate mp d of
|
||||
Nothing -> "The password data were not valid."
|
||||
Just pw -> "password for " ++ x ++ ": " ++ pw
|
||||
|
||||
showAltPass :: String -> S.StateT Status IO ()
|
||||
showAltPass srv = do
|
||||
lift $ putStrLn ""
|
||||
withService x
|
||||
(lift $ putStrLn "The service could not be found in the database.") $
|
||||
\d -> do
|
||||
mp <- S.gets $ view masterPass
|
||||
lift $ putStrLn $ case pwGenerate mp d of
|
||||
Nothing -> "The password data were not valid."
|
||||
Just pw -> "password for " ++ x ++ ": " ++ pw
|
||||
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
|
||||
editPolicy :: PWPolicy -> Request PWPolicy
|
||||
|
||||
14
package.yaml
14
package.yaml
@@ -1,5 +1,5 @@
|
||||
name: passman
|
||||
version: 0.3.0.1
|
||||
version: 0.3.1
|
||||
github: "jlamothe/passman"
|
||||
license: LGPL-3
|
||||
author: "Jonathan Lamothe"
|
||||
@@ -26,7 +26,7 @@ dependencies:
|
||||
- containers >= 0.6.2.1 && < 0.7
|
||||
- microlens >= 0.4.11.2 && < 0.5
|
||||
- microlens-th >= 0.4.3.6 && < 0.5
|
||||
- random
|
||||
- random >=1.1 && < 1.2
|
||||
|
||||
ghc-options:
|
||||
- -Wall
|
||||
@@ -34,10 +34,10 @@ ghc-options:
|
||||
library:
|
||||
source-dirs: src
|
||||
dependencies:
|
||||
- base16-bytestring
|
||||
- base64-bytestring
|
||||
- SHA
|
||||
- text
|
||||
- base16-bytestring >= 0.1.1.7 && < 0.2
|
||||
- base64-bytestring >= 1.1.0.0 && < 1.2
|
||||
- SHA >= 1.6.4.4 && < 1.7
|
||||
- text >= 1.2.4.1 && < 1.3
|
||||
|
||||
executables:
|
||||
passman:
|
||||
@@ -51,7 +51,7 @@ executables:
|
||||
- passman
|
||||
- easy-file >= 0.2.2 && < 0.3
|
||||
- HCL >= 1.8 && < 1.9
|
||||
- transformers
|
||||
- transformers >= 0.5.6.2 && < 0.6
|
||||
|
||||
tests:
|
||||
passman-test:
|
||||
|
||||
@@ -4,10 +4,10 @@ cabal-version: 1.12
|
||||
--
|
||||
-- see: https://github.com/sol/hpack
|
||||
--
|
||||
-- hash: cb93fb36b8e4bc0ba6599211ccbb3c5be2617b87a64c3afd57b41914d9ecd495
|
||||
-- hash: e3bd0ca2b360b025666f4503e3115caaaed34c7719487d90ae4d5eb58f9621e9
|
||||
|
||||
name: passman
|
||||
version: 0.3.0.1
|
||||
version: 0.3.1
|
||||
synopsis: a simple password manager
|
||||
description: Please see the README on GitHub at <https://github.com/jlamothe/passman#readme>
|
||||
category: Security
|
||||
@@ -36,17 +36,17 @@ library
|
||||
src
|
||||
ghc-options: -Wall
|
||||
build-depends:
|
||||
SHA
|
||||
SHA >=1.6.4.4 && <1.7
|
||||
, aeson >=1.5.6.0 && <1.6
|
||||
, base >=4.7 && <5
|
||||
, base16-bytestring
|
||||
, base64-bytestring
|
||||
, base16-bytestring >=0.1.1.7 && <0.2
|
||||
, base64-bytestring >=1.1.0.0 && <1.2
|
||||
, bytestring >=0.10.12.0 && <0.11
|
||||
, containers >=0.6.2.1 && <0.7
|
||||
, microlens >=0.4.11.2 && <0.5
|
||||
, microlens-th >=0.4.3.6 && <0.5
|
||||
, random
|
||||
, text
|
||||
, random >=1.1 && <1.2
|
||||
, text >=1.2.4.1 && <1.3
|
||||
default-language: Haskell2010
|
||||
|
||||
executable passman
|
||||
@@ -69,8 +69,8 @@ executable passman
|
||||
, microlens >=0.4.11.2 && <0.5
|
||||
, microlens-th >=0.4.3.6 && <0.5
|
||||
, passman
|
||||
, random
|
||||
, transformers
|
||||
, random >=1.1 && <1.2
|
||||
, transformers >=0.5.6.2 && <0.6
|
||||
default-language: Haskell2010
|
||||
|
||||
test-suite passman-test
|
||||
@@ -104,5 +104,5 @@ test-suite passman-test
|
||||
, microlens >=0.4.11.2 && <0.5
|
||||
, microlens-th >=0.4.3.6 && <0.5
|
||||
, passman
|
||||
, random
|
||||
, random >=1.1 && <1.2
|
||||
default-language: Haskell2010
|
||||
|
||||
Reference in New Issue
Block a user