Cleans imports in Middleware and define exports in Auth
This commit is contained in:
@@ -46,7 +46,6 @@ import qualified Hasql as H
|
|||||||
import qualified Hasql.Backend as B
|
import qualified Hasql.Backend as B
|
||||||
import qualified Hasql.Postgres as P
|
import qualified Hasql.Postgres as P
|
||||||
|
|
||||||
import PostgREST.Auth
|
|
||||||
import PostgREST.Config (AppConfig (..))
|
import PostgREST.Config (AppConfig (..))
|
||||||
import PostgREST.Parsers
|
import PostgREST.Parsers
|
||||||
import PostgREST.PgQuery
|
import PostgREST.PgQuery
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
module PostgREST.Auth where
|
module PostgREST.Auth (
|
||||||
|
DbRole
|
||||||
|
, LoginAttempt (..)
|
||||||
|
, setRole
|
||||||
|
, setJWTEnv
|
||||||
|
) where
|
||||||
|
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Control.Monad (mzero)
|
import Control.Monad (mzero)
|
||||||
|
|
||||||
import Data.Aeson
|
import Data.Aeson
|
||||||
import Data.Map (lookup, fromList, toList)
|
import Data.Map (fromList, toList)
|
||||||
import Data.Monoid
|
import Data.Monoid
|
||||||
import Data.String.Conversions (cs)
|
import Data.String.Conversions (cs)
|
||||||
import Data.Maybe (isNothing)
|
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import qualified Data.Vector as V
|
|
||||||
import qualified Hasql as H
|
|
||||||
import qualified Hasql.Backend as B
|
|
||||||
import qualified Hasql.Postgres as P
|
|
||||||
import PostgREST.PgQuery (pgFmtLit)
|
import PostgREST.PgQuery (pgFmtLit)
|
||||||
import Prelude
|
import Prelude
|
||||||
import qualified Web.JWT as JWT
|
import qualified Web.JWT as JWT
|
||||||
@@ -57,8 +57,9 @@ setDBEnv maybeClaims =
|
|||||||
(map setVar . toList) <$> maybeClaims
|
(map setVar . toList) <$> maybeClaims
|
||||||
where
|
where
|
||||||
setVar ("role", String val) = setRole val
|
setVar ("role", String val) = setRole val
|
||||||
setVar (key, String val) = "set local postgrest." <> key <> " = " <> cs (pgFmtLit val) <> ";"
|
setVar (key, String val) = "set local postgrest.claims" <> key <> " = " <> cs (pgFmtLit val) <> ";"
|
||||||
|
|
||||||
|
setRole :: Text -> Text
|
||||||
setRole role = "set local role " <> cs (pgFmtLit role) <> ";"
|
setRole role = "set local role " <> cs (pgFmtLit role) <> ";"
|
||||||
|
|
||||||
jwtClaims :: Text -> Text -> Maybe JWT.ClaimsMap
|
jwtClaims :: Text -> Text -> Maybe JWT.ClaimsMap
|
||||||
|
|||||||
@@ -10,11 +10,9 @@ import Data.String.Conversions (cs)
|
|||||||
import qualified Hasql as H
|
import qualified Hasql as H
|
||||||
import qualified Hasql.Postgres as P
|
import qualified Hasql.Postgres as P
|
||||||
|
|
||||||
import Network.HTTP.Types (RequestHeaders)
|
|
||||||
import Network.HTTP.Types.Header (hAccept, hAuthorization,
|
import Network.HTTP.Types.Header (hAccept, hAuthorization,
|
||||||
hLocation)
|
hLocation)
|
||||||
import Network.HTTP.Types.Status (status301, status400, status401,
|
import Network.HTTP.Types.Status (status301, status400, status415)
|
||||||
status415)
|
|
||||||
import Network.URI (URI (..), parseURI)
|
import Network.URI (URI (..), parseURI)
|
||||||
import Network.Wai (Application, Request (..),
|
import Network.Wai (Application, Request (..),
|
||||||
Response, isSecure, rawPathInfo,
|
Response, isSecure, rawPathInfo,
|
||||||
@@ -24,14 +22,11 @@ import Network.Wai.Middleware.Cors (cors)
|
|||||||
import Network.Wai.Middleware.Gzip (def, gzip)
|
import Network.Wai.Middleware.Gzip (def, gzip)
|
||||||
import Network.Wai.Middleware.Static (only, staticPolicy)
|
import Network.Wai.Middleware.Static (only, staticPolicy)
|
||||||
|
|
||||||
import Codec.Binary.Base64.String (decode)
|
|
||||||
import PostgREST.App (contentTypeForAccept)
|
import PostgREST.App (contentTypeForAccept)
|
||||||
import PostgREST.Auth (DbRole, LoginAttempt (..),
|
import PostgREST.Auth (setRole, setJWTEnv)
|
||||||
setRole, setJWTEnv)
|
|
||||||
import PostgREST.Config (AppConfig (..), corsPolicy)
|
import PostgREST.Config (AppConfig (..), corsPolicy)
|
||||||
|
|
||||||
import Prelude hiding(concat)
|
import Prelude hiding(concat)
|
||||||
import qualified Web.JWT as JWT
|
|
||||||
|
|
||||||
import qualified Data.Vector as V
|
import qualified Data.Vector as V
|
||||||
import qualified Hasql.Backend as B
|
import qualified Hasql.Backend as B
|
||||||
|
|||||||
Reference in New Issue
Block a user