keycloak-hs-1.1.0

Safe HaskellNone
LanguageHaskell2010

Keycloak.Client

Contents

Synopsis

Permissions

isAuthorized :: ResourceId -> ScopeName -> Token -> Keycloak Bool Source #

Returns true if the resource is authorized under the given scope.

getPermissions :: [PermReq] -> Token -> Keycloak [Permission] Source #

Return the permissions for the permission requests.

checkPermission :: ResourceId -> ScopeName -> Token -> Keycloak () Source #

Checks if a scope is permitted on a resource. An HTTP Exception 403 will be thrown if not.

Tokens

getUserAuthToken :: Username -> Password -> Keycloak Token Source #

Retrieve the user's token. This token will be used for every other Keycloak calls.

getClientAuthToken :: Keycloak Token Source #

return a Client token. It is useful to create Resources.

getUsername :: Token -> Username Source #

Extract user name from a token

Resource

createResource :: Resource -> Token -> Keycloak ResourceId Source #

Create an authorization resource in Keycloak, under the configured client.

deleteResource :: ResourceId -> Token -> Keycloak () Source #

Delete the resource

deleteAllResources :: Token -> Keycloak () Source #

Delete all resources in Keycloak

getResource :: ResourceId -> Token -> Keycloak Resource Source #

get a single resource

getAllResourceIds :: Keycloak [ResourceId] Source #

get all resources IDs

Users

getUsers :: Maybe Max -> Maybe First -> Maybe Username -> Token -> Keycloak [User] Source #

Get users. Default number of users is 100. Parameters max and first allow to paginate and retrieve more than 100 users.

getUser :: UserId -> Token -> Keycloak User Source #

Get a single user, based on his Id

createUser :: User -> Token -> Keycloak UserId Source #

Create a user

updateUser :: UserId -> User -> Token -> Keycloak () Source #

Get a single user, based on his Id

Keycloak basic requests

keycloakPost :: (Postable dat, Show dat) => Path -> dat -> Token -> Keycloak ByteString Source #

Perform post to Keycloak.

keycloakPost' :: (Postable dat, Show dat) => Path -> dat -> Keycloak ByteString Source #

Perform post to Keycloak, without token.

keycloakDelete :: Path -> Token -> Keycloak () Source #

Perform delete to Keycloak.

keycloakGet :: Path -> Token -> Keycloak ByteString Source #

Perform get to Keycloak on admin API

keycloakAdminGet :: Path -> Token -> Keycloak ByteString Source #

Perform get to Keycloak on admin API

keycloakAdminPost :: (Postable dat, Show dat) => Path -> dat -> Token -> Keycloak ByteString Source #

Perform post to Keycloak.

keycloakAdminPut :: (Putable dat, Show dat) => Path -> dat -> Token -> Keycloak () Source #

Perform put to Keycloak.

Helpers

debug :: MonadIO m => String -> m () Source #

warn :: MonadIO m => String -> m () Source #

info :: MonadIO m => String -> m () Source #

err :: MonadIO m => String -> m () Source #

try :: MonadError a m => m b -> m (Either a b) Source #