, delUser
)
where
-
-import qualified Codec.Binary.UTF8.String as UTF8
import Control.Concurrent.STM
+import Control.Monad
import Control.Monad.Trans
import qualified Data.ByteString as B
import Data.Map (Map)
import qualified Data.Map as M hiding (Map)
import Data.Maybe
-import OpenSSL.EVP.Base64
-import OpenSSL.EVP.Digest
import Rakka.SystemConfig
import System.Directory
import System.FilePath
-import System.IO
data AuthDB
= AuthDB {
adbFilePath :: !FilePath
, adbUserMap :: !(TVar UserMap)
- , adbSyncRequest :: !(TVar Bool)
}
mkAuthDB :: FilePath -> IO AuthDB
mkAuthDB lsdir
= do let path = lsdir </> "authDB"
- m <- newTVarIO =<< loadUserMap path
- req <- newTVarIO False
+ m <- newTVarIO =<< loadUserMap path
return AuthDB {
- adbFilePath = path
- , adbUserMap = m
- , adbSyncRequest = req
+ adbFilePath = path
+ , adbUserMap = m
}
loadUserMap path
= do exist <- doesFileExist path
m <- if exist then
- readFile path
- >>=
- return . M.fromList . map decodePair . fromJust . deserializeStringPairs
+ liftM (M.fromList . map decodePair . fromJust . deserializeStringPairs)
+ (readFile path)
else
return M.empty
sha1 <- return . fromJust =<< getDigestByName "SHA1"