packages feed

yesod-auth-oauth2 0.4.1.0 → 0.5.0.0

raw patch · 6 files changed

+18/−18 lines, 6 filesdep −transformersdep ~hoauth2dep ~yesod-authdep ~yesod-corePVP ok

version bump matches the API change (PVP)

Dependencies removed: transformers

Dependency ranges changed: hoauth2, yesod-auth, yesod-core

API changes (from Hackage documentation)

- Yesod.Auth.OAuth2: authOAuth2Widget :: YesodAuth m => WidgetT m IO () -> Text -> OAuth2 -> FetchCreds m -> AuthPlugin m
+ Yesod.Auth.OAuth2: authOAuth2Widget :: YesodAuth m => WidgetFor m () -> Text -> OAuth2 -> FetchCreds m -> AuthPlugin m
- Yesod.Auth.OAuth2.BattleNet: oAuth2BattleNet :: YesodAuth m => Text -> Text -> Text -> WidgetT m IO () -> AuthPlugin m
+ Yesod.Auth.OAuth2.BattleNet: oAuth2BattleNet :: YesodAuth m => Text -> Text -> Text -> WidgetFor m () -> AuthPlugin m
- Yesod.Auth.OAuth2.BattleNet: oauth2BattleNet :: YesodAuth m => WidgetT m IO () -> Text -> Text -> Text -> AuthPlugin m
+ Yesod.Auth.OAuth2.BattleNet: oauth2BattleNet :: YesodAuth m => WidgetFor m () -> Text -> Text -> Text -> AuthPlugin m
- Yesod.Auth.OAuth2.EveOnline: Custom :: (WidgetT m IO ()) -> WidgetType m
+ Yesod.Auth.OAuth2.EveOnline: Custom :: (WidgetFor m ()) -> WidgetType m
- Yesod.Auth.OAuth2.Prelude: AuthPlugin :: Text -> (Method -> [Piece] -> AuthHandler master TypedContent) -> ((Route Auth -> Route master) -> WidgetT master IO ()) -> AuthPlugin master
+ Yesod.Auth.OAuth2.Prelude: AuthPlugin :: Text -> (Method -> [Piece] -> AuthHandler master TypedContent) -> ((Route Auth -> Route master) -> WidgetFor master ()) -> AuthPlugin master
- Yesod.Auth.OAuth2.Prelude: [apLogin] :: AuthPlugin master -> (Route Auth -> Route master) -> WidgetT master IO ()
+ Yesod.Auth.OAuth2.Prelude: [apLogin] :: AuthPlugin master -> (Route Auth -> Route master) -> WidgetFor master ()
- Yesod.Auth.OAuth2.Prelude: authHttpManager :: YesodAuth master => master -> Manager
+ Yesod.Auth.OAuth2.Prelude: authHttpManager :: (YesodAuth master, MonadHandler m, (~) * HandlerSite m master) => m Manager
- Yesod.Auth.OAuth2.Prelude: authLayout :: YesodAuth master => WidgetT master IO () -> HandlerT master IO Html
+ Yesod.Auth.OAuth2.Prelude: authLayout :: (YesodAuth master, MonadHandler m, (~) * HandlerSite m master) => WidgetFor master () -> m Html
- Yesod.Auth.OAuth2.Prelude: authOAuth2Widget :: YesodAuth m => WidgetT m IO () -> Text -> OAuth2 -> FetchCreds m -> AuthPlugin m
+ Yesod.Auth.OAuth2.Prelude: authOAuth2Widget :: YesodAuth m => WidgetFor m () -> Text -> OAuth2 -> FetchCreds m -> AuthPlugin m
- Yesod.Auth.OAuth2.Prelude: authenticate :: YesodAuth master => Creds master -> HandlerT master IO AuthenticationResult master
+ Yesod.Auth.OAuth2.Prelude: authenticate :: (YesodAuth master, MonadHandler m, (~) * HandlerSite m master) => Creds master -> m AuthenticationResult master
- Yesod.Auth.OAuth2.Prelude: getAuthId :: YesodAuth master => Creds master -> HandlerT master IO Maybe AuthId master
+ Yesod.Auth.OAuth2.Prelude: getAuthId :: (YesodAuth master, MonadHandler m, (~) * HandlerSite m master) => Creds master -> m Maybe AuthId master
- Yesod.Auth.OAuth2.Prelude: loginHandler :: YesodAuth master => HandlerT Auth HandlerT master IO Html
+ Yesod.Auth.OAuth2.Prelude: loginHandler :: YesodAuth master => AuthHandler master Html
- Yesod.Auth.OAuth2.Prelude: maybeAuthId :: YesodAuth master => HandlerT master IO Maybe AuthId master
+ Yesod.Auth.OAuth2.Prelude: maybeAuthId :: (YesodAuth master, MonadHandler m, (~) * master HandlerSite m) => m Maybe AuthId master
- Yesod.Auth.OAuth2.Prelude: onErrorHtml :: (YesodAuth master, MonadResourceBase m) => Route master -> Text -> HandlerT master m Html
+ Yesod.Auth.OAuth2.Prelude: onErrorHtml :: (YesodAuth master, MonadHandler m, (~) * HandlerSite m master) => Route master -> Text -> m Html
- Yesod.Auth.OAuth2.Prelude: onLogin :: YesodAuth master => HandlerT master IO ()
+ Yesod.Auth.OAuth2.Prelude: onLogin :: (YesodAuth master, MonadHandler m, (~) * master HandlerSite m) => m ()
- Yesod.Auth.OAuth2.Prelude: onLogout :: YesodAuth master => HandlerT master IO ()
+ Yesod.Auth.OAuth2.Prelude: onLogout :: (YesodAuth master, MonadHandler m, (~) * master HandlerSite m) => m ()
- Yesod.Auth.OAuth2.Prelude: runHttpRequest :: YesodAuth master => Request -> (Response BodyReader -> HandlerT master IO a) -> HandlerT master IO a
+ Yesod.Auth.OAuth2.Prelude: runHttpRequest :: (YesodAuth master, MonadHandler m, (~) * HandlerSite m master, MonadUnliftIO m) => Request -> (Response BodyReader -> m a) -> m a

Files

example/Main.hs view
@@ -78,7 +78,6 @@          return $ Authenticated "1" -    authHttpManager = appHttpManager     authPlugins = appAuthPlugins  instance RenderMessage App FormMessage where
src/Yesod/Auth/OAuth2.hs view
@@ -52,7 +52,7 @@ -- authOAuth2Widget     :: YesodAuth m-    => WidgetT m IO ()+    => WidgetFor m ()     -> Text     -> OAuth2     -> FetchCreds m
src/Yesod/Auth/OAuth2/BattleNet.hs view
@@ -29,7 +29,7 @@  oauth2BattleNet     :: YesodAuth m-    => WidgetT m IO () -- ^ Login widget+    => WidgetFor m () -- ^ Login widget     -> Text -- ^ User region (e.g. "eu", "cn", "us")     -> Text -- ^ Client ID     -> Text -- ^ Client Secret@@ -64,6 +64,6 @@ wwwHost "cn" = "www.battlenet.com.cn" wwwHost region = Host $ encodeUtf8 $ region <> ".battle.net" -oAuth2BattleNet :: YesodAuth m => Text -> Text -> Text -> WidgetT m IO () -> AuthPlugin m+oAuth2BattleNet :: YesodAuth m => Text -> Text -> Text -> WidgetFor m () -> AuthPlugin m oAuth2BattleNet i s r w = oauth2BattleNet w r i s {-# DEPRECATED oAuth2BattleNet "Use oauth2BattleNet" #-}
src/Yesod/Auth/OAuth2/Dispatch.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-} module Yesod.Auth.OAuth2.Dispatch     ( FetchCreds     , dispatchAuthRequest@@ -46,7 +47,7 @@ dispatchForward name oauth2 = do     csrf <- setSessionCSRF $ tokenSessionKey name     oauth2' <- withCallbackAndState name oauth2 csrf-    lift $ redirect $ toText $ authorizationUrl oauth2'+    redirect $ toText $ authorizationUrl oauth2'  -- | Handle @GET \/callback@ --@@ -59,11 +60,11 @@     csrf <- verifySessionCSRF $ tokenSessionKey name     onErrorResponse errInvalidOAuth     code <- requireGetParam "code"-    manager <- lift $ getsYesod authHttpManager+    manager <- authHttpManager     oauth2' <- withCallbackAndState name oauth2 csrf     token <- denyLeft $ fetchAccessToken manager oauth2' $ ExchangeToken code     creds <- denyLeft $ tryIO $ getCreds manager token-    lift $ setCredsRedirect creds+    setCredsRedirect creds   where     -- On a Left result, log it and return an opaque permission-denied     denyLeft :: (MonadHandler m, MonadLogger m, Show e) => IO (Either e a) -> m a@@ -81,7 +82,8 @@     let callbackText = render url      callback <- maybe-        (throwString+        (liftIO+            $ throwString             $ "Invalid callback URI: "             <> T.unpack callbackText             <> ". Not using an absolute Approot?"@@ -93,9 +95,9 @@             `withQuery` [("state", encodeUtf8 csrf)]         } -getParentUrlRender :: HandlerT child (HandlerT parent IO) (Route child -> Text)+getParentUrlRender :: MonadHandler m => m (Route (SubHandlerSite m) -> Text) getParentUrlRender = (.)-    <$> lift getUrlRender+    <$> getUrlRender     <*> getRouteToParent  -- | Set a random, 30-character value in the session
src/Yesod/Auth/OAuth2/EveOnline.hs view
@@ -30,9 +30,9 @@     | SmallWhite     | BigBlack     | SmallBlack-    | Custom (WidgetT m IO ())+    | Custom (WidgetFor m ()) -asWidget :: YesodAuth m => WidgetType m -> WidgetT m IO ()+asWidget :: YesodAuth m => WidgetType m -> WidgetFor m () asWidget Plain = [whamlet|Login via eveonline|] asWidget BigWhite = [whamlet|<img src="https://images.contentful.com/idjq7aai9ylm/4PTzeiAshqiM8osU2giO0Y/5cc4cb60bac52422da2e45db87b6819c/EVE_SSO_Login_Buttons_Large_White.png?w=270&h=45">|] asWidget BigBlack = [whamlet|<img src="https://images.contentful.com/idjq7aai9ylm/4fSjj56uD6CYwYyus4KmES/4f6385c91e6de56274d99496e6adebab/EVE_SSO_Login_Buttons_Large_Black.png?w=270&h=45">|]
yesod-auth-oauth2.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 2abd54f1d50a9de6207536db36d9e0d29146b6f7e9f8b6495dc9f4377f83bc84+-- hash: 8ca8256c419d63fec8925743afe833bfa510d57bf4c9c3f50707f07ad619058a  name:           yesod-auth-oauth2-version:        0.4.1.0+version:        0.5.0.0 synopsis:       OAuth 2.0 authentication plugins description:    Library to authenticate with OAuth 2.0 for Yesod web applications. category:       Web@@ -36,7 +36,7 @@     , base >=4.9.0.0 && <5     , bytestring >=0.9.1.4     , errors-    , hoauth2 >=1.3.0 && <1.6+    , hoauth2 >=1.3.0 && <1.8     , http-client >=0.4.0 && <0.6     , http-conduit >=2.0 && <3.0     , http-types >=0.8 && <0.13@@ -44,10 +44,9 @@     , random     , safe-exceptions     , text >=0.7 && <2.0-    , transformers >=0.2.2 && <0.6     , uri-bytestring-    , yesod-auth >=1.3 && <1.5-    , yesod-core >=1.2 && <1.5+    , yesod-auth >=1.6.0 && <1.7+    , yesod-core >=1.6.0 && <1.7   exposed-modules:       URI.ByteString.Extension       Yesod.Auth.OAuth2