servant-auth-server-0.4.4.0: servant-server/servant-auth compatibility

Safe HaskellNone
LanguageHaskell2010

Servant.Auth.Server.Internal.Class

Contents

Synopsis

Documentation

class IsAuth a v where #

IsAuth a ctx v indicates that a is an auth type that expects all elements of ctx to be the in the Context and whose authentication check returns an AuthCheck v.

Associated Types

type AuthArgs a :: [*] #

Methods

runAuth :: proxy a -> proxy v -> Unapp (AuthArgs a) (AuthCheck v) #

Instances
FromJWT usr => IsAuth JWT usr # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Associated Types

type AuthArgs JWT :: [Type] #

Methods

runAuth :: proxy JWT -> proxy usr -> Unapp (AuthArgs JWT) (AuthCheck usr) #

FromJWT usr => IsAuth Cookie usr # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Associated Types

type AuthArgs Cookie :: [Type] #

Methods

runAuth :: proxy Cookie -> proxy usr -> Unapp (AuthArgs Cookie) (AuthCheck usr) #

FromBasicAuthData usr => IsAuth BasicAuth usr # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Associated Types

type AuthArgs BasicAuth :: [Type] #

Methods

runAuth :: proxy BasicAuth -> proxy usr -> Unapp (AuthArgs BasicAuth) (AuthCheck usr) #

Helper

class AreAuths (as :: [*]) (ctxs :: [*]) v where #

Methods

runAuths :: proxy as -> Context ctxs -> AuthCheck v #

Instances
AreAuths ([] :: [Type]) ctxs v # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Methods

runAuths :: proxy [] -> Context ctxs -> AuthCheck v #

(AuthCheck v ~ App (AuthArgs a) (Unapp (AuthArgs a) (AuthCheck v)), IsAuth a v, AreAuths as ctxs v, AppCtx ctxs (AuthArgs a) (Unapp (AuthArgs a) (AuthCheck v))) => AreAuths (a ': as) ctxs v # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Methods

runAuths :: proxy (a ': as) -> Context ctxs -> AuthCheck v #

type family Unapp ls res where ... #

Equations

Unapp '[] res = res 
Unapp (arg1 ': rest) res = arg1 -> Unapp rest res 

type family App ls res where ... #

Equations

App '[] res = res 
App (arg1 ': rest) (arg1 -> res) = App rest res 

class AppCtx ctx ls res where #

AppCtx applies the function res to the arguments in ls by taking the values from the Context provided.

Methods

appCtx :: proxy ls -> Context ctx -> res -> App ls res #

Instances
AppCtx ctx ([] :: [Type]) res # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Methods

appCtx :: proxy [] -> Context ctx -> res -> App [] res #

(HasContextEntry ctxs ctx, AppCtx ctxs rest res) => AppCtx ctxs (ctx ': rest) (ctx -> res) # 
Instance details

Defined in Servant.Auth.Server.Internal.Class

Methods

appCtx :: proxy (ctx ': rest) -> Context ctxs -> (ctx -> res) -> App (ctx ': rest) (ctx -> res) #