gitit 0.3 → 0.3.1
raw patch · 4 files changed
+22/−21 lines, 4 filesdep +SHAdep −Crypto
Dependencies added: SHA
Dependencies removed: Crypto
Files
- Gitit.hs +16/−14
- Gitit/State.hs +2/−3
- css/screen.css +2/−2
- gitit.cabal +2/−2
Gitit.hs view
@@ -39,15 +39,15 @@ import Data.List (intersect, intersperse, intercalate, sort, nub, sortBy, isSuffixOf) import Data.Maybe (fromMaybe, fromJust, mapMaybe, isNothing) import Data.ByteString.UTF8 (fromString)+import qualified Data.ByteString.Lazy.UTF8 as L (fromString) import qualified Data.Map as M import Data.Ord (comparing)-import qualified Data.Digest.SHA512 as SHA512 (hash)+import Data.Digest.Pure.SHA (sha512, showDigest) import Paths_gitit import Text.Pandoc import Text.Pandoc.ODT (saveOpenDocumentAsODT) import Text.Pandoc.Definition (processPandoc) import Text.Pandoc.Shared (HTMLMathMethod(..), substitute)-import Data.ByteString.Internal (c2w) import Data.Char (isAlphaNum, isAlpha) import Codec.Binary.UTF8.String (decodeString) import Control.Monad.Reader@@ -58,7 +58,7 @@ import Text.Highlighting.Kate gititVersion :: String-gititVersion = "0.3"+gititVersion = "0.3.1" main :: IO () main = do@@ -899,20 +899,21 @@ if revision == "HEAD" then "edit" else "revert" else Nothing let buttons = ulist ! [theclass "tabs"] << mapMaybe linkForTab (pgTabs layout)- let userbox = case user of- Just u -> anchor ! [href ("/_logout?" ++ urlEncodeVars [("destination", page)])] << - ("Logout " ++ u)- Nothing -> (anchor ! [href ("/_login?" ++ urlEncodeVars [("destination", page)])] <<- "Login") +++ primHtml " • " +++- anchor ! [href ("/_register?" ++ urlEncodeVars [("destination", page)])] <<- "Get an account"+ let userbox = thediv ! [identifier "userbox"] <<+ case user of+ Just u -> [ anchor ! [href ("/_logout?" ++ urlEncodeVars [("destination", page)])] << + ("Logout " ++ u) ]+ Nothing -> [ anchor ! [href ("/_login?" ++ urlEncodeVars [("destination", page)])] <<+ "Login"+ , primHtml " • "+ , anchor ! [href ("/_register?" ++ urlEncodeVars [("destination", page)])] <<+ "Get an account" ] let messages = pMessages params let htmlMessages = if null messages then noHtml else ulist ! [theclass "messages"] << map (li <<) messages let body' = body << thediv ! [identifier "container"] <<- [ thediv ! [identifier "userbox"] << userbox- , thediv ! [identifier "sidebar"] <<+ [ thediv ! [identifier "sidebar"] << [ thediv ! [identifier "logo"] << anchor ! [href "/", title "Go to top page"] << case wikiLogo cfg of@@ -920,6 +921,7 @@ Just f -> image ! [src f] , sitenav , tools ]+ , userbox , thediv ! [identifier "maincol"] << [ thediv ! [theclass "pageControls"] << buttons , thediv ! [identifier "content"] << @@ -954,7 +956,7 @@ let pword = pPassword params let destination = pDestination params cfg <- query GetConfig- let passwordHash = SHA512.hash $ map c2w $ passwordSalt cfg ++ pword+ let passwordHash = showDigest $ sha512 $ L.fromString $ passwordSalt cfg ++ pword allowed <- query $ AuthUser uname passwordHash if allowed then do@@ -1025,7 +1027,7 @@ , (not (null fakeField), "You do not seem human enough.") ] -- fakeField is hidden in CSS (honeypot) if null errors then do- let passwordHash = SHA512.hash $ map c2w $ passwordSalt cfg ++ pword+ let passwordHash = showDigest $ sha512 $ L.fromString $ passwordSalt cfg ++ pword update $ AddUser uname (User { uUsername = uname, uPassword = passwordHash, uEmail = email }) loginUser "/" (params { pUsername = uname, pPassword = pword }) else formattedPage (defaultPageLayout { pgShowPageTools = False, pgTabs = [], pgTitle = "Register for an account" })
Gitit/State.hs view
@@ -33,7 +33,6 @@ import HAppS.State import HAppS.Data import GHC.Conc (STM)-import Codec.Utils (Octet) -- | Data structure for information read from config file. data Config = Config {@@ -86,7 +85,7 @@ data User = User { uUsername :: String,- uPassword :: [Octet], -- password stored as MD5 hash+ uPassword :: String, -- password stored as SHA512 hash uEmail :: String } deriving (Show,Read,Typeable,Data) @@ -138,7 +137,7 @@ delUser :: MonadState AppState m => String -> m () delUser name = modUsers $ M.delete name -authUser :: MonadReader AppState m => String -> [Octet] -> m Bool+authUser :: MonadReader AppState m => String -> String -> m Bool authUser name pass = do users' <- askUsers case M.lookup name users' of
css/screen.css view
@@ -248,7 +248,7 @@ padding: 0; } -#userbox { float: right; font-weight: bold; margin: 1em; }+#userbox { text-align: right; font-weight: bold; margin: 1em 1em 0 0; } #logo { min-height: 50px; } #sidebar { width: 12em; float: left; margin-right: 10px; } #sidebar fieldset {@@ -267,7 +267,7 @@ line-height: 1.5em; } #sidebar ul li { color: #888; }-#maincol { position: absolute; margin-left: 13em; margin-top: 1em; padding-top: 2em; margin-right: 0; }+#maincol { position: absolute; margin-left: 13em; margin-top: 1em; padding-top: 0; margin-right: 0; } #content { border: 1px solid #ccc; background-color: #fff; padding: 1em; font-size: 110%; line-height: 150%; } #pageControls { } div#toc {
gitit.cabal view
@@ -1,5 +1,5 @@ name: gitit-version: 0.3+version: 0.3.1 Cabal-version: >= 1.2 build-type: Simple synopsis: Wiki using HAppS, git, and pandoc.@@ -46,7 +46,7 @@ network, old-time, highlighting-kate, bytestring, utf8-string, HAppS-Server >= 0.9.3 && < 0.9.4, HAppS-State >= 0.9.3 && < 0.9.4,- HAppS-Data >= 0.9.3 && < 0.9.4, Crypto, HTTP+ HAppS-Data >= 0.9.3 && < 0.9.4, SHA > 1, HTTP if impl(ghc >= 6.10) build-depends: base >= 4, syb ghc-options: -Wall -threaded