From c44e5c61036e48d65fff01a67bea66ec3a2bfcc7 Mon Sep 17 00:00:00 2001 From: Felipe Lessa Date: Mon, 25 May 2015 21:23:06 -0300 Subject: [PATCH] New AuthId type synonym. --- serversession/src/Web/ServerSession/Core.hs | 1 + .../src/Web/ServerSession/Core/Internal.hs | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/serversession/src/Web/ServerSession/Core.hs b/serversession/src/Web/ServerSession/Core.hs index d7469e7..1f94e8c 100644 --- a/serversession/src/Web/ServerSession/Core.hs +++ b/serversession/src/Web/ServerSession/Core.hs @@ -2,6 +2,7 @@ module Web.ServerSession.Core ( -- * For serversession storage backends SessionId + , AuthId , Session(..) , Storage(..) diff --git a/serversession/src/Web/ServerSession/Core/Internal.hs b/serversession/src/Web/ServerSession/Core/Internal.hs index 13f3162..0272a08 100644 --- a/serversession/src/Web/ServerSession/Core/Internal.hs +++ b/serversession/src/Web/ServerSession/Core/Internal.hs @@ -6,6 +6,7 @@ module Web.ServerSession.Core.Internal , generateSessionId , SessionMap + , AuthId , Session(..) , Storage(..) @@ -112,6 +113,10 @@ generateSessionId = fmap S . N.nonce128urlT type SessionMap = M.Map Text ByteString +-- | Value of the 'authKey' session key. +type AuthId = ByteString + + -- | Representation of a saved session. -- -- This representation is used by the @serversession@ family of @@ -123,7 +128,7 @@ data Session = Session { sessionKey :: SessionId -- ^ Session ID, primary key. - , sessionAuthId :: Maybe ByteString + , sessionAuthId :: Maybe AuthId -- ^ Value of 'authKey' session key, separate from the rest. , sessionData :: SessionMap -- ^ Rest of the session data. @@ -150,7 +155,7 @@ class MonadIO (TransactionM s) => Storage s where deleteSession :: s -> SessionId -> TransactionM s () -- | Delete all sessions of the given auth ID. - deleteAllSessionsOfAuthId :: s -> ByteString -> TransactionM s () + deleteAllSessionsOfAuthId :: s -> AuthId -> TransactionM s () -- | Insert a new session. insertSession :: s -> Session -> TransactionM s () @@ -162,7 +167,9 @@ class MonadIO (TransactionM s) => Storage s where ---------------------------------------------------------------------- --- TODO: do not create empty sessions +-- TODO: do not create empty sessions. + +-- TODO: delete expired sessions. -- | The server-side session backend needs to maintain some state -- in order to work: