Merge branch 'master' into uni2work
This commit is contained in:
commit
fda3a000f9
@ -10,12 +10,12 @@ dist: trusty
|
||||
language: c
|
||||
|
||||
services:
|
||||
- redis-server
|
||||
- redis-server
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libgmp-dev
|
||||
- libgmp-dev
|
||||
postgresql: "9.3"
|
||||
|
||||
cache:
|
||||
@ -25,8 +25,7 @@ cache:
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env: STACKARGS="--resolver=lts-11"
|
||||
- env: STACKARGS="--resolver=lts-12"
|
||||
- env: STACKARGS="--resolver=lts-15"
|
||||
- env: STACKARGS="--resolver=nightly"
|
||||
allow_failures:
|
||||
- env: STACKARGS="--resolver=nightly"
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
{-# LANGUAGE DerivingStrategies #-}
|
||||
{-# LANGUAGE StandaloneDeriving #-}
|
||||
{-# LANGUAGE UndecidableInstances #-}
|
||||
module Model where
|
||||
|
||||
import ClassyPrelude.Yesod
|
||||
|
||||
44
flake.lock
Normal file
44
flake.lock
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1619345332,
|
||||
"narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"ref": "master",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1620323686,
|
||||
"narHash": "sha256-+gfcE3YTGl+Osc8HzOUXSFO8/0PAK4J8ZxCXZ4hjXHI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dfacb8329b2236688b9a1e705116203a213b283a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
30
flake.nix
Normal file
30
flake.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs = {
|
||||
type = "github";
|
||||
owner = "NixOS";
|
||||
repo = "nixpkgs";
|
||||
ref = "master";
|
||||
};
|
||||
flake-utils = {
|
||||
type = "github";
|
||||
owner = "numtide";
|
||||
repo = "flake-utils";
|
||||
ref = "master";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in {
|
||||
devShell = pkgs.mkShell {
|
||||
name = "uni2work-serversession";
|
||||
nativeBuildInputs = with pkgs.haskellPackages; [ stack ];
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
8
nixpkgs.nix
Normal file
8
nixpkgs.nix
Normal file
@ -0,0 +1,8 @@
|
||||
import (
|
||||
let
|
||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||
in fetchTarball {
|
||||
url = "https://api.github.com/repos/NixOS/nixpkgs/tarball/${lock.nodes.nixpkgs.locked.rev}";
|
||||
sha256 = lock.nodes.nixpkgs.locked.narHash;
|
||||
}
|
||||
)
|
||||
@ -0,0 +1,3 @@
|
||||
# 1.0.4
|
||||
|
||||
* bump acid-state to 0.16
|
||||
@ -1,5 +1,6 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession-backend-acid-state
|
||||
version: 1.0.3
|
||||
version: 1.0.4
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
author: Felipe Lessa <felipe.lessa@gmail.com>
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: Storage backend for serversession using acid-state.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession-backend-acid-state>
|
||||
@ -19,10 +19,11 @@ flag lib-Werror
|
||||
manual: True
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base == 4.*
|
||||
, acid-state == 0.16.*
|
||||
, acid-state >= 0.16
|
||||
, containers
|
||||
, mtl
|
||||
, safecopy >= 0.8 && <0.11
|
||||
@ -32,7 +33,7 @@ library
|
||||
exposed-modules:
|
||||
Web.ServerSession.Backend.Acid
|
||||
Web.ServerSession.Backend.Acid.Internal
|
||||
extensions:
|
||||
default-extensions:
|
||||
ConstraintKinds
|
||||
DeriveDataTypeable
|
||||
FlexibleContexts
|
||||
@ -47,6 +48,7 @@ library
|
||||
|
||||
|
||||
test-suite tests
|
||||
default-language: Haskell2010
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: tests
|
||||
build-depends:
|
||||
@ -57,7 +59,7 @@ test-suite tests
|
||||
, serversession
|
||||
, serversession-backend-acid-state
|
||||
main-is: Main.hs
|
||||
extensions:
|
||||
default-extensions:
|
||||
CPP
|
||||
ghc-options: -Wall -threaded "-with-rtsopts=-N -s -M1G -c" -rtsopts
|
||||
if flag(lib-Werror)
|
||||
|
||||
@ -109,7 +109,7 @@ instance SafeCopy SS.SessionMap where
|
||||
|
||||
-- | We can't @deriveSafeCopy 0 'base ''SS.SessionId@ as
|
||||
-- otherwise we'd require an unneeded @SafeCopy sess@.
|
||||
instance SafeCopy (SS.SessionId sess) where
|
||||
instance Typeable sess => SafeCopy (SS.SessionId sess) where
|
||||
putCopy = contain . safePut . SSI.unS
|
||||
getCopy = contain $ SSI.S <$> safeGet
|
||||
|
||||
@ -118,7 +118,7 @@ instance SafeCopy (SS.SessionId sess) where
|
||||
|
||||
-- | We can't @deriveSafeCopy 0 'base ''SS.Session@ due to the
|
||||
-- required context.
|
||||
instance SafeCopy (SS.Decomposed sess) => SafeCopy (SS.Session sess) where
|
||||
instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (SS.Session sess) where
|
||||
putCopy (SS.Session key authId data_ createdAt accessedAt) = contain $ do
|
||||
put_t <- getSafePut
|
||||
safePut key
|
||||
@ -140,7 +140,7 @@ instance SafeCopy (SS.Decomposed sess) => SafeCopy (SS.Session sess) where
|
||||
|
||||
-- | We can't @deriveSafeCopy 0 'base ''ServerSessionAcidState@ due
|
||||
-- to the required context.
|
||||
instance SafeCopy (SS.Decomposed sess) => SafeCopy (ServerSessionAcidState sess) where
|
||||
instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (ServerSessionAcidState sess) where
|
||||
putCopy (ServerSessionAcidState sits aits) = contain $ do
|
||||
safePut (HM.toList sits)
|
||||
safePut (HM.toList aits)
|
||||
@ -279,31 +279,27 @@ data DeleteAllSessionsOfAuthId sess = DeleteAllSessionsOfAuthId SS.AuthId derivi
|
||||
data InsertSession sess = InsertSession (SS.Session sess) deriving (Typeable)
|
||||
data ReplaceSession sess = ReplaceSession (SS.Session sess) deriving (Typeable)
|
||||
|
||||
instance SafeCopy (GetSession sess) where
|
||||
instance Typeable sess => SafeCopy (GetSession sess) where
|
||||
putCopy (GetSession v) = contain $ safePut v
|
||||
getCopy = contain $ GetSession <$> safeGet
|
||||
|
||||
errorTypeName _ = "GetSession"
|
||||
|
||||
instance SafeCopy (DeleteSession sess) where
|
||||
instance Typeable sess => SafeCopy (DeleteSession sess) where
|
||||
putCopy (DeleteSession v) = contain $ safePut v
|
||||
getCopy = contain $ DeleteSession <$> safeGet
|
||||
|
||||
errorTypeName _ = "DeleteSession"
|
||||
|
||||
instance SafeCopy (DeleteAllSessionsOfAuthId sess) where
|
||||
instance Typeable sess => SafeCopy (DeleteAllSessionsOfAuthId sess) where
|
||||
putCopy (DeleteAllSessionsOfAuthId v) = contain $ safePut v
|
||||
getCopy = contain $ DeleteAllSessionsOfAuthId <$> safeGet
|
||||
|
||||
errorTypeName _ = "DeleteAllSessionsOfAuthId"
|
||||
|
||||
instance SafeCopy (SS.Decomposed sess) => SafeCopy (InsertSession sess) where
|
||||
instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (InsertSession sess) where
|
||||
putCopy (InsertSession v) = contain $ safePut v
|
||||
getCopy = contain $ InsertSession <$> safeGet
|
||||
|
||||
errorTypeName _ = "InsertSession"
|
||||
|
||||
instance SafeCopy (SS.Decomposed sess) => SafeCopy (ReplaceSession sess) where
|
||||
instance (Typeable sess, SafeCopy (SS.Decomposed sess)) => SafeCopy (ReplaceSession sess) where
|
||||
putCopy (ReplaceSession v) = contain $ safePut v
|
||||
getCopy = contain $ ReplaceSession <$> safeGet
|
||||
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
1.0.5
|
||||
* bump persistent to 2.10
|
||||
1.0.4
|
||||
* Default auth id to NULL to fix a MySQL bug.
|
||||
1.0.3
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession-backend-persistent
|
||||
version: 1.0.4
|
||||
version: 1.0.5
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
author: Felipe Lessa <felipe.lessa@gmail.com>
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: Storage backend for serversession using persistent and an RDBMS.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession-backend-persistent>
|
||||
@ -19,6 +19,7 @@ flag lib-Werror
|
||||
manual: True
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base == 4.*
|
||||
@ -27,7 +28,7 @@ library
|
||||
, bytestring
|
||||
, cereal >= 0.4
|
||||
, path-pieces
|
||||
, persistent >= 2.1
|
||||
, persistent >= 2.10
|
||||
, tagged >= 0.7
|
||||
, text
|
||||
, time
|
||||
@ -39,7 +40,7 @@ library
|
||||
Web.ServerSession.Backend.Persistent
|
||||
Web.ServerSession.Backend.Persistent.Internal.Impl
|
||||
Web.ServerSession.Backend.Persistent.Internal.Types
|
||||
extensions:
|
||||
default-extensions:
|
||||
DeriveDataTypeable
|
||||
EmptyDataDecls
|
||||
FlexibleContexts
|
||||
@ -62,6 +63,7 @@ library
|
||||
|
||||
|
||||
test-suite tests
|
||||
default-language: Haskell2010
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: tests
|
||||
build-depends:
|
||||
@ -79,7 +81,7 @@ test-suite tests
|
||||
|
||||
, serversession
|
||||
, serversession-backend-persistent
|
||||
extensions:
|
||||
default-extensions:
|
||||
OverloadedStrings
|
||||
TemplateHaskell
|
||||
main-is: Main.hs
|
||||
|
||||
@ -96,6 +96,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
["Eq", "Ord", "Show", "Typeable"]
|
||||
M.mempty
|
||||
False
|
||||
Nothing
|
||||
where
|
||||
pfd :: P.EntityField (PersistentSession sess) typ -> P.FieldDef
|
||||
pfd = P.persistFieldDef
|
||||
@ -142,8 +143,10 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
(P.SqlOther "SqlType unset for key")
|
||||
[]
|
||||
True
|
||||
P.NoReference]
|
||||
P.NoReference
|
||||
Nothing]
|
||||
[]))
|
||||
Nothing
|
||||
persistFieldDef PersistentSessionKey
|
||||
= P.FieldDef
|
||||
(P.HaskellName "key")
|
||||
@ -153,6 +156,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
["maxlen=30"]
|
||||
True
|
||||
P.NoReference
|
||||
Nothing
|
||||
persistFieldDef PersistentSessionAuthId
|
||||
= P.FieldDef
|
||||
(P.HaskellName "authId")
|
||||
@ -162,6 +166,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
["Maybe", "default=NULL"]
|
||||
True
|
||||
P.NoReference
|
||||
Nothing
|
||||
persistFieldDef PersistentSessionSession
|
||||
= P.FieldDef
|
||||
(P.HaskellName "session")
|
||||
@ -171,6 +176,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
[]
|
||||
True
|
||||
P.NoReference
|
||||
Nothing
|
||||
persistFieldDef PersistentSessionCreatedAt
|
||||
= P.FieldDef
|
||||
(P.HaskellName "createdAt")
|
||||
@ -180,6 +186,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
[]
|
||||
True
|
||||
P.NoReference
|
||||
Nothing
|
||||
persistFieldDef PersistentSessionAccessedAt
|
||||
= P.FieldDef
|
||||
(P.HaskellName "accessedAt")
|
||||
@ -189,6 +196,7 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
|
||||
[]
|
||||
True
|
||||
P.NoReference
|
||||
Nothing
|
||||
|
||||
persistIdField = PersistentSessionId
|
||||
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
1.0.4
|
||||
* bump hedis to 0.13
|
||||
1.0.3
|
||||
* Allow hedis-0.10
|
||||
1.0.2
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession-backend-redis
|
||||
version: 1.0.3
|
||||
version: 1.0.4
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
author: Felipe Lessa <felipe.lessa@gmail.com>
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: Storage backend for serversession using Redis.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession-backend-redis>
|
||||
@ -23,11 +23,12 @@ flag lib-Werror
|
||||
manual: True
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base == 4.*
|
||||
, bytestring
|
||||
, hedis < 0.11
|
||||
, hedis < 0.13
|
||||
, path-pieces
|
||||
, tagged >= 0.7
|
||||
, text
|
||||
@ -43,7 +44,7 @@ library
|
||||
exposed-modules:
|
||||
Web.ServerSession.Backend.Redis
|
||||
Web.ServerSession.Backend.Redis.Internal
|
||||
extensions:
|
||||
default-extensions:
|
||||
CPP
|
||||
DeriveDataTypeable
|
||||
FlexibleContexts
|
||||
@ -60,6 +61,7 @@ library
|
||||
|
||||
|
||||
test-suite tests
|
||||
default-language: Haskell2010
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: tests
|
||||
build-depends:
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession-frontend-snap
|
||||
version: 1.0.1
|
||||
license: MIT
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: Snap bindings for serversession.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession-frontend-snap>
|
||||
@ -20,6 +20,7 @@ flag lib-Werror
|
||||
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base == 4.*
|
||||
@ -37,7 +38,7 @@ library
|
||||
exposed-modules:
|
||||
Web.ServerSession.Frontend.Snap
|
||||
Web.ServerSession.Frontend.Snap.Internal
|
||||
extensions:
|
||||
default-extensions:
|
||||
DeriveDataTypeable
|
||||
FlexibleContexts
|
||||
OverloadedStrings
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession-frontend-wai
|
||||
version: 1.0
|
||||
license: MIT
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: wai-session bindings for serversession.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession-frontend-wai>
|
||||
@ -19,6 +19,7 @@ flag lib-Werror
|
||||
manual: True
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base >= 4.6 && < 5
|
||||
@ -38,7 +39,7 @@ library
|
||||
exposed-modules:
|
||||
Web.ServerSession.Frontend.Wai
|
||||
Web.ServerSession.Frontend.Wai.Internal
|
||||
extensions:
|
||||
default-extensions:
|
||||
FlexibleContexts
|
||||
OverloadedStrings
|
||||
TypeFamilies
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession-frontend-yesod
|
||||
version: 1.0
|
||||
license: MIT
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: Yesod bindings for serversession.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession-frontend-yesod>
|
||||
@ -19,6 +19,7 @@ flag lib-Werror
|
||||
manual: True
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base == 4.*
|
||||
@ -38,7 +39,7 @@ library
|
||||
exposed-modules:
|
||||
Web.ServerSession.Frontend.Yesod
|
||||
Web.ServerSession.Frontend.Yesod.Internal
|
||||
extensions:
|
||||
default-extensions:
|
||||
FlexibleContexts
|
||||
OverloadedStrings
|
||||
TypeFamilies
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
# 1.0.2
|
||||
* add persistent-test to deps
|
||||
@ -1,5 +1,6 @@
|
||||
cabal-version: >= 1.10
|
||||
name: serversession
|
||||
version: 1.0.1
|
||||
version: 1.0.2
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
author: Felipe Lessa <felipe.lessa@gmail.com>
|
||||
@ -7,7 +8,6 @@ maintainer: Michael Xavier <michael@michaelxavier.net>
|
||||
synopsis: Secure, modular server-side sessions.
|
||||
category: Web
|
||||
stability: Stable
|
||||
cabal-version: >= 1.8
|
||||
build-type: Simple
|
||||
homepage: https://github.com/yesodweb/serversession
|
||||
description: API docs and the README are available at <http://www.stackage.org/package/serversession>
|
||||
@ -19,16 +19,18 @@ flag lib-Werror
|
||||
manual: True
|
||||
|
||||
library
|
||||
default-language: Haskell2010
|
||||
hs-source-dirs: src
|
||||
build-depends:
|
||||
base == 4.*
|
||||
, aeson
|
||||
, base64-bytestring == 1.0.*
|
||||
, base64-bytestring >= 1.0 && < 1.3
|
||||
, bytestring
|
||||
, data-default
|
||||
, hashable
|
||||
, nonce == 1.0.*
|
||||
, path-pieces
|
||||
, persistent-test
|
||||
, text
|
||||
, time
|
||||
, transformers
|
||||
@ -37,7 +39,7 @@ library
|
||||
Web.ServerSession.Core
|
||||
Web.ServerSession.Core.Internal
|
||||
Web.ServerSession.Core.StorageTests
|
||||
extensions:
|
||||
default-extensions:
|
||||
DeriveDataTypeable
|
||||
FlexibleContexts
|
||||
OverloadedStrings
|
||||
@ -53,6 +55,7 @@ library
|
||||
|
||||
|
||||
test-suite tests
|
||||
default-language: Haskell2010
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: tests
|
||||
build-depends:
|
||||
@ -64,7 +67,7 @@ test-suite tests
|
||||
, hspec >= 2.1 && < 3
|
||||
, QuickCheck
|
||||
, serversession
|
||||
extensions:
|
||||
default-extensions:
|
||||
DeriveDataTypeable
|
||||
FlexibleContexts
|
||||
OverloadedStrings
|
||||
|
||||
@ -10,6 +10,7 @@ module Web.ServerSession.Core.StorageTests
|
||||
import Control.Applicative as A
|
||||
import Control.Exception (Exception)
|
||||
import Control.Monad
|
||||
import DataTypeTest (roundUTCTime)
|
||||
import Web.ServerSession.Core.Internal
|
||||
|
||||
import qualified Crypto.Nonce as N
|
||||
@ -173,8 +174,8 @@ allStorageTests storage it runIO parallel _shouldBe shouldReturn shouldThrow = d
|
||||
{ sessionKey = sid
|
||||
, sessionAuthId = Nothing
|
||||
, sessionData = SessionMap $ HM.fromList vals
|
||||
, sessionCreatedAt = now
|
||||
, sessionAccessedAt = now
|
||||
, sessionCreatedAt = roundUTCTime now
|
||||
, sessionAccessedAt = roundUTCTime now
|
||||
}
|
||||
ver2 = session { sessionData = SessionMap HM.empty }
|
||||
run (getSession storage sid) `shouldReturn` Nothing
|
||||
@ -223,8 +224,8 @@ generateSession gen hasAuthId = do
|
||||
{ sessionKey = sid
|
||||
, sessionAuthId = authId
|
||||
, sessionData = SessionMap data_
|
||||
, sessionCreatedAt = TI.addUTCTime (-1000) now
|
||||
, sessionAccessedAt = now
|
||||
, sessionCreatedAt = roundUTCTime $ TI.addUTCTime (-1000) now
|
||||
, sessionAccessedAt = roundUTCTime $ now
|
||||
}
|
||||
|
||||
data HasAuthId = HasAuthId | NoAuthId
|
||||
|
||||
16
stack.nix
Normal file
16
stack.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{ ghc, nixpkgs ? import ./nixpkgs.nix }:
|
||||
|
||||
let
|
||||
# haskellPackages = import ./stackage.nix { inherit nixpkgs; };
|
||||
haskellPackages = pkgs.haskellPackages;
|
||||
inherit (nixpkgs {}) pkgs;
|
||||
in pkgs.haskell.lib.buildStackProject {
|
||||
inherit ghc;
|
||||
inherit (haskellPackages) stack;
|
||||
name = "stackenv";
|
||||
buildInputs = (with pkgs;
|
||||
[ postgresql zlib libsodium gmp llvm_9
|
||||
]) ++ (with haskellPackages;
|
||||
[ yesod-bin happy alex
|
||||
]);
|
||||
}
|
||||
49
stack.yaml
49
stack.yaml
@ -1,4 +1,18 @@
|
||||
resolver: lts-15.0
|
||||
flags:
|
||||
serversession-backend-acid-state:
|
||||
lib-Werror: true
|
||||
serversession-frontend-wai:
|
||||
lib-Werror: true
|
||||
serversession-backend-persistent:
|
||||
lib-Werror: true
|
||||
serversession:
|
||||
lib-Werror: true
|
||||
serversession-backend-redis:
|
||||
lib-Werror: true
|
||||
serversession-frontend-yesod:
|
||||
lib-Werror: true
|
||||
serversession-frontend-snap:
|
||||
lib-Werror: true
|
||||
packages:
|
||||
- serversession
|
||||
- serversession-backend-acid-state
|
||||
@ -8,25 +22,16 @@ packages:
|
||||
- serversession-frontend-wai
|
||||
- serversession-frontend-yesod
|
||||
- examples/serversession-example-yesod-persistent
|
||||
flags:
|
||||
serversession:
|
||||
lib-Werror: true
|
||||
serversession-backend-acid-state:
|
||||
lib-Werror: true
|
||||
serversession-backend-persistent:
|
||||
lib-Werror: true
|
||||
serversession-backend-redis:
|
||||
lib-Werror: true
|
||||
serversession-frontend-snap:
|
||||
lib-Werror: true
|
||||
serversession-frontend-wai:
|
||||
lib-Werror: true
|
||||
serversession-frontend-yesod:
|
||||
lib-Werror: true
|
||||
extra-deps:
|
||||
- acid-state-0.16.0
|
||||
- snap-1.1.1.0
|
||||
- heist-1.1
|
||||
- map-syntax-0.3
|
||||
- pwstore-fast-2.4.4
|
||||
- xmlhtml-0.2.5.2
|
||||
- snap-1.1.3.0@sha256:0c0814d2ab1c3d5f22cef4615b2913ded18e87710ea6febdbe6e3ab8d9838735,8872
|
||||
- acid-state-0.16.0@sha256:a5640fd8d99bdb5f152476a2ae56cc8eb81864b280c8ec7d1387e81296ed844d,6190
|
||||
- heist-1.1.0.1@sha256:7355cf8c1a7ef84c0c800c0539f7b99e7e540cace697238009a2dea1f05231f1,9311
|
||||
- map-syntax-0.3@sha256:ca8b449615fa57419c16a5e98844624a6ac758692b87b3cfae8c74c87c56f1b2,2420
|
||||
- pwstore-fast-2.4.4@sha256:9b6a37510d8b9f37f409a8ab3babac9181afcaaa3fce8ba1c131a7ed3de30698,1351
|
||||
- xmlhtml-0.2.5.2@sha256:3f0990f725551985d777e8edb5563fe99aee998f1fde6a7633f720f76df54701,46997
|
||||
resolver: lts-16.31
|
||||
nix:
|
||||
packages: []
|
||||
pure: false
|
||||
shell-file: ./stack.nix
|
||||
add-gc-roots: true
|
||||
|
||||
@ -4,51 +4,51 @@
|
||||
# https://docs.haskellstack.org/en/stable/lock_files
|
||||
|
||||
packages:
|
||||
- completed:
|
||||
hackage: snap-1.1.3.0@sha256:0c0814d2ab1c3d5f22cef4615b2913ded18e87710ea6febdbe6e3ab8d9838735,8872
|
||||
pantry-tree:
|
||||
size: 5743
|
||||
sha256: 804f55a8cab81e720547308e799243e81f43e089b860c0d3160a938cad86ed0d
|
||||
original:
|
||||
hackage: snap-1.1.3.0@sha256:0c0814d2ab1c3d5f22cef4615b2913ded18e87710ea6febdbe6e3ab8d9838735,8872
|
||||
- completed:
|
||||
hackage: acid-state-0.16.0@sha256:a5640fd8d99bdb5f152476a2ae56cc8eb81864b280c8ec7d1387e81296ed844d,6190
|
||||
pantry-tree:
|
||||
size: 13678
|
||||
sha256: c6e4b7f00d2a500e6286beafe3a2da7ba898a9ea31f5744df57cdce8a8f5890f
|
||||
original:
|
||||
hackage: acid-state-0.16.0
|
||||
hackage: acid-state-0.16.0@sha256:a5640fd8d99bdb5f152476a2ae56cc8eb81864b280c8ec7d1387e81296ed844d,6190
|
||||
- completed:
|
||||
hackage: snap-1.1.1.0@sha256:3b6301b66f244074d1d7a87173cc70871df1df84b3a86bba5e996422d5e73f45,9093
|
||||
pantry-tree:
|
||||
size: 5743
|
||||
sha256: 23a8899b96ab2dd080328b35f047c057c06ff1dc31a73b724a7a69ba3f5db374
|
||||
original:
|
||||
hackage: snap-1.1.1.0
|
||||
- completed:
|
||||
hackage: heist-1.1@sha256:20187de15ef630f8f6debc1cc22cacefb55ddf8864749294bfe2b79a831cad8d,8722
|
||||
hackage: heist-1.1.0.1@sha256:7355cf8c1a7ef84c0c800c0539f7b99e7e540cace697238009a2dea1f05231f1,9311
|
||||
pantry-tree:
|
||||
size: 7354
|
||||
sha256: 977c0818628cc92775afbf063032e308e55e29e85eaf6289e955dcdcd80b563f
|
||||
sha256: a2635ed49de6debaf8b98189989f83ab58dcc125c6ae8e57f6fe0903bc7fa8ff
|
||||
original:
|
||||
hackage: heist-1.1
|
||||
hackage: heist-1.1.0.1@sha256:7355cf8c1a7ef84c0c800c0539f7b99e7e540cace697238009a2dea1f05231f1,9311
|
||||
- completed:
|
||||
hackage: map-syntax-0.3@sha256:ca8b449615fa57419c16a5e98844624a6ac758692b87b3cfae8c74c87c56f1b2,2420
|
||||
pantry-tree:
|
||||
size: 558
|
||||
sha256: c196bee0433f9540e4251ebd1be06d802ff7cc4931e6f0aedc38babd28683a3c
|
||||
original:
|
||||
hackage: map-syntax-0.3
|
||||
hackage: map-syntax-0.3@sha256:ca8b449615fa57419c16a5e98844624a6ac758692b87b3cfae8c74c87c56f1b2,2420
|
||||
- completed:
|
||||
hackage: pwstore-fast-2.4.4@sha256:9b6a37510d8b9f37f409a8ab3babac9181afcaaa3fce8ba1c131a7ed3de30698,1351
|
||||
pantry-tree:
|
||||
size: 270
|
||||
sha256: ff4a44ede62515efe5cd366a5803f7183c811c4a0cf56eea88da94181c4844c0
|
||||
original:
|
||||
hackage: pwstore-fast-2.4.4
|
||||
hackage: pwstore-fast-2.4.4@sha256:9b6a37510d8b9f37f409a8ab3babac9181afcaaa3fce8ba1c131a7ed3de30698,1351
|
||||
- completed:
|
||||
hackage: xmlhtml-0.2.5.2@sha256:3f0990f725551985d777e8edb5563fe99aee998f1fde6a7633f720f76df54701,46997
|
||||
pantry-tree:
|
||||
size: 61835
|
||||
sha256: bb1bd95db3738e18d112bbc9724510ee64a51b7eda61494507f4957c5e2281f6
|
||||
original:
|
||||
hackage: xmlhtml-0.2.5.2
|
||||
hackage: xmlhtml-0.2.5.2@sha256:3f0990f725551985d777e8edb5563fe99aee998f1fde6a7633f720f76df54701,46997
|
||||
snapshots:
|
||||
- completed:
|
||||
size: 488576
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/15/0.yaml
|
||||
sha256: e4b6a87b47ec1cf63a7f1a0884a3b276fce2b0d174a10e8753c4f618e7983568
|
||||
original: lts-15.0
|
||||
size: 534126
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/31.yaml
|
||||
sha256: 637fb77049b25560622a224845b7acfe81a09fdb6a96a3c75997a10b651667f6
|
||||
original: lts-16.31
|
||||
|
||||
Loading…
Reference in New Issue
Block a user