-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Alternate authentication snaplet -- -- More customizable authentication snaplet with OAuth2 support @package snaplet-customauth @version 0.2 module Snap.Snaplet.CustomAuth.OAuth2 data OAuth2Settings u i e b OAuth2Settings :: (Text -> Text -> Handler b (AuthManager u e b) (Either e (Maybe ByteString))) -> (Text -> Text -> Handler b (AuthManager u e b) (Either e (Maybe u))) -> (OAuth2Stage -> Handler b (AuthManager u e b) ()) -> (Text -> Text -> Handler b (AuthManager u e b) (Either e i)) -> (u -> Handler b (AuthManager u e b) ()) -> Handler b (AuthManager u e b) () -> (Text -> Text -> ByteString -> Handler b (AuthManager u e b) ()) -> SnapletLens (Snaplet b) SessionManager -> Manager -> (Handler b (AuthManager u e b) () -> Handler b (AuthManager u e b) ()) -> OAuth2Settings u i e b [oauth2Check] :: OAuth2Settings u i e b -> Text -> Text -> Handler b (AuthManager u e b) (Either e (Maybe ByteString)) [oauth2Login] :: OAuth2Settings u i e b -> Text -> Text -> Handler b (AuthManager u e b) (Either e (Maybe u)) [oauth2Failure] :: OAuth2Settings u i e b -> OAuth2Stage -> Handler b (AuthManager u e b) () [prepareOAuth2Create] :: OAuth2Settings u i e b -> Text -> Text -> Handler b (AuthManager u e b) (Either e i) [oauth2AccountCreated] :: OAuth2Settings u i e b -> u -> Handler b (AuthManager u e b) () [oauth2LoginDone] :: OAuth2Settings u i e b -> Handler b (AuthManager u e b) () [resumeAction] :: OAuth2Settings u i e b -> Text -> Text -> ByteString -> Handler b (AuthManager u e b) () [stateStore] :: OAuth2Settings u i e b -> SnapletLens (Snaplet b) SessionManager [httpManager] :: OAuth2Settings u i e b -> Manager [bracket] :: OAuth2Settings u i e b -> Handler b (AuthManager u e b) () -> Handler b (AuthManager u e b) () data AuthFailure e Action :: OAuth2ActionFailure -> AuthFailure e data OAuth2Failure StateNotStored :: OAuth2Failure StateNotReceived :: OAuth2Failure ExpiredState :: OAuth2Failure BadState :: OAuth2Failure ConfigurationError :: OAuth2Failure IdExtractionFailed :: Maybe Text -> OAuth2Failure NoStoredToken :: OAuth2Failure AlreadyUser :: OAuth2Failure AlreadyLoggedIn :: OAuth2Failure IdentityInUse :: OAuth2Failure ProviderError :: Maybe Text -> OAuth2Failure AccessTokenFetchError :: OAuth2Failure data OAuth2Stage SCallback :: OAuth2Stage SLogin :: OAuth2Stage SCreate :: OAuth2Stage SAction :: OAuth2Stage addOAuth2Splices :: Snaplet (Heist b) -> SnapletLens b (AuthManager u e b) -> Initializer b v () oauth2Init :: IAuthBackend u i e b => OAuth2Settings u i e b -> Initializer b (AuthManager u e b) (HashMap Text Provider) saveAction :: (IAuthBackend u i e b, Binary a) => Bool -> Text -> a -> Handler b (AuthManager u e b) () redirectToProvider :: Text -> Handler b (AuthManager u e b) Bool module Snap.Snaplet.CustomAuth data AuthManager u e b AuthManager :: (UserData u => Maybe u) -> Maybe NominalDiffTime -> ByteString -> ByteString -> ByteString -> SnapletLens (Snaplet b) SessionManager -> Maybe Text -> Maybe (AuthFailure e) -> HashMap Text Provider -> AuthManager u e b [activeUser] :: AuthManager u e b -> UserData u => Maybe u [cookieLifetime] :: AuthManager u e b -> Maybe NominalDiffTime [sessionCookieName] :: AuthManager u e b -> ByteString [userField] :: AuthManager u e b -> ByteString [passwordField] :: AuthManager u e b -> ByteString [stateStore'] :: AuthManager u e b -> SnapletLens (Snaplet b) SessionManager [oauth2Provider] :: AuthManager u e b -> Maybe Text [authFailData] :: AuthManager u e b -> Maybe (AuthFailure e) [providers] :: AuthManager u e b -> HashMap Text Provider data AuthUser AuthUser :: Text -> ByteString -> ByteString -> AuthUser [name] :: AuthUser -> Text [session] :: AuthUser -> ByteString [csrfToken] :: AuthUser -> ByteString data AuthFailure e UserError :: e -> AuthFailure e Login :: LoginFailure -> AuthFailure e Create :: CreateFailure -> AuthFailure e data LoginFailure NoSession :: LoginFailure SessionRecoverFail :: LoginFailure UsernameMissing :: LoginFailure PasswordMissing :: LoginFailure WrongPasswordOrUsername :: LoginFailure data CreateFailure MissingName :: CreateFailure InvalidName :: CreateFailure DuplicateName :: CreateFailure PasswordFailure :: PasswordFailure -> CreateFailure OAuth2Failure :: OAuth2Failure -> CreateFailure data PasswordFailure Missing :: PasswordFailure Mismatch :: PasswordFailure class (UserData u, Binary i, Show e, Eq e) => IAuthBackend u i e b | u -> b, b -> e, e -> i preparePasswordCreate :: IAuthBackend u i e b => Maybe u -> Text -> Handler b (AuthManager u e b) (Either e i) cancelPrepare :: IAuthBackend u i e b => i -> Handler b (AuthManager u e b) () create :: IAuthBackend u i e b => Text -> i -> Handler b (AuthManager u e b) (Either (Either e CreateFailure) u) attachLoginMethod :: IAuthBackend u i e b => u -> i -> Handler b (AuthManager u e b) (Either e ()) login :: IAuthBackend u i e b => Text -> Text -> Handler b (AuthManager u e b) (Either e (Maybe u)) logout :: IAuthBackend u i e b => Text -> Handler b (AuthManager u e b) () recover :: IAuthBackend u i e b => Text -> Handler b (AuthManager u e b) (Either (AuthFailure e) u) getUserId :: IAuthBackend u i e b => u -> Handler b (AuthManager u e b) ByteString isDuplicateError :: IAuthBackend u i e b => e -> Handler b (AuthManager u e b) Bool class UserData a extractUser :: UserData a => a -> AuthUser defAuthSettings :: AuthSettings authName :: Lens' AuthSettings Text authCookieLifetime :: Lens' AuthSettings (Maybe NominalDiffTime) createAccount :: IAuthBackend u i e b => Handler b (AuthManager u e b) (Either (Either e CreateFailure) u) loginUser :: IAuthBackend u i e b => Handler b (AuthManager u e b) () -> Handler b (AuthManager u e b) () -> Handler b (AuthManager u e b) () logoutUser :: IAuthBackend u i e b => Handler b (AuthManager u e b) () recoverSession :: IAuthBackend u i e b => Handler b (AuthManager u e b) () combinedLoginRecover :: IAuthBackend u i e b => Handler b (AuthManager u e b) () -> Handler b (AuthManager u e b) (Maybe u) setUser :: UserData u => u -> Handler b (AuthManager u e b) () currentUser :: UserData u => Handler b (AuthManager u e b) (Maybe u) getAuthFailData :: Handler b (AuthManager u e b) (Maybe (AuthFailure e)) resetAuthFailData :: Handler b (AuthManager u e b) () authInit :: IAuthBackend u i e b => Maybe (OAuth2Settings u i e b) -> AuthSettings -> SnapletInit b (AuthManager u e b) isSessionDefined :: Handler b (AuthManager u e b) Bool isLoggedIn :: UserData u => Handler b (AuthManager u e b) Bool compiledAuthSplices :: UserData u => SnapletLens b (AuthManager u e b) -> Splices (SnapletCSplice b) ifLoggedIn :: UserData u => SnapletLens b (AuthManager u e b) -> SnapletISplice b ifLoggedOut :: UserData u => SnapletLens b (AuthManager u e b) -> SnapletISplice b loggedInUser :: UserData u => SnapletLens b (AuthManager u e b) -> SnapletISplice b