Safe Haskell | None |
---|
- class YesodAuth master => YesodZendesk master where
- zendeskToken :: master -> ByteString
- zendeskAuthURL :: master -> Text
- zendeskUserInfo :: GHandler Zendesk master ZendeskUser
- data ZendeskUser = ZendeskUser {
- zuName :: Text
- zuEmail :: Text
- zuExternalId :: ZendeskExternalId
- zuOrganization :: Maybe Text
- zuTags :: [Text]
- zuRemotePhotoURL :: Maybe Text
- data ZendeskExternalId
- data Zendesk
- getZendesk :: a -> Zendesk
- zendeskLoginRoute :: Route Zendesk
Documentation
class YesodAuth master => YesodZendesk master whereSource
Type class that you need to implement in order to support Zendesk remote authentication.
Minimal complete definition: all functions are required.
zendeskToken :: master -> ByteStringSource
Shared secret between Zendesk and your site.
zendeskAuthURL :: master -> TextSource
URL on your Zendesk's site where users should be redirected to when logging in.
zendeskUserInfo :: GHandler Zendesk master ZendeskUserSource
Gather information that should be given to Zendesk about
an user. Please see ZendeskUser
for more information
about what these fields mean.
Simple example:
zendeskUserInfo = do Entity uid user <-requireAuth
returndef
{zuName
= userName user ,zuEmail
= userEmail user }
Advanced example:
zendeskUserInfo = do uid <-requireAuthId
render <-getUrlRender
runDB $ do Just user <- get uid Just org <- get (userOrganization user) returndef
{zuName
= userName user ,zuEmail
= userEmail user ,zuOrganization
= Just (organizationName org) ,zuRemotePhotoURL
= Just (render $ UserPhotoR uid) }
Note: although I don't recomend this and I don't see any
reason why you would do it, it is possible to use
maybeAuth
instead of requireAuth
and login on Zendesk
with some sort of guest user should the user not be logged
in.
data ZendeskUser Source
Information about a user that is given to Zendesk
. Please
see Zendesk's documentation
(http://www.zendesk.com/support/api/remote-authentication)
in order to see more details of how theses fields are
interpreted.
ZendeskUser | |
|
Eq ZendeskUser | |
Ord ZendeskUser | |
Read ZendeskUser | |
Show ZendeskUser | |
Default ZendeskUser | Fields |
data ZendeskExternalId Source
Which external ID should be given to Zendesk.
UseYesodAuthId | Use the user ID from |
Explicit Text | Use this given value. |
NoExternalId | Do not give an external ID. |
Data type for yesod-auth-zendesk
's subsite.
RenderRoute Zendesk | |
(Yesod master, YesodZendesk master) => YesodDispatch Zendesk master | |
Eq (Route Zendesk) | |
Read (Route Zendesk) | |
Show (Route Zendesk) |
getZendesk :: a -> ZendeskSource
Create a new Zendesk
, use this on your config/routes
file.
zendeskLoginRoute :: Route ZendeskSource
Redirect the user to Zendesk such that they're already
logged in when they arrive. For example, you may use
zendeskLoginRoute
when the user clicks on a "Support" item
on a menu.