ldap-scim-bridge-0.10: See README for synopsis
Safe HaskellSafe-Inferred
LanguageHaskell2010

LdapScimBridge

Synopsis

Documentation

data LdapConf Source #

Constructors

LdapConf 

Fields

Instances

Instances details
FromJSON LdapConf Source # 
Instance details

Defined in LdapScimBridge

Show LdapConf Source # 
Instance details

Defined in LdapScimBridge

data LdapFilterAttr Source #

Constructors

LdapFilterAttr 

Fields

Instances

Instances details
FromJSON LdapFilterAttr Source # 
Instance details

Defined in LdapScimBridge

Generic LdapFilterAttr Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type Rep LdapFilterAttr :: Type -> Type #

Show LdapFilterAttr Source # 
Instance details

Defined in LdapScimBridge

Eq LdapFilterAttr Source # 
Instance details

Defined in LdapScimBridge

type Rep LdapFilterAttr Source # 
Instance details

Defined in LdapScimBridge

type Rep LdapFilterAttr = D1 ('MetaData "LdapFilterAttr" "LdapScimBridge" "ldap-scim-bridge-0.10-inplace" 'False) (C1 ('MetaCons "LdapFilterAttr" 'PrefixI 'True) (S1 ('MetaSel ('Just "key") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data LdapSearch Source #

Constructors

LdapSearch 

Fields

Instances

Instances details
FromJSON LdapSearch Source # 
Instance details

Defined in LdapScimBridge

Show LdapSearch Source # 
Instance details

Defined in LdapScimBridge

Eq LdapSearch Source # 
Instance details

Defined in LdapScimBridge

data Codec Source #

Constructors

Utf8 
Latin1 

Instances

Instances details
Show Codec Source # 
Instance details

Defined in LdapScimBridge

Methods

showsPrec :: Int -> Codec -> ShowS #

show :: Codec -> String #

showList :: [Codec] -> ShowS #

Eq Codec Source # 
Instance details

Defined in LdapScimBridge

Methods

(==) :: Codec -> Codec -> Bool #

(/=) :: Codec -> Codec -> Bool #

data ScimConf Source #

Constructors

ScimConf 

Instances

Instances details
FromJSON ScimConf Source # 
Instance details

Defined in LdapScimBridge

Generic ScimConf Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type Rep ScimConf :: Type -> Type #

Methods

from :: ScimConf -> Rep ScimConf x #

to :: Rep ScimConf x -> ScimConf #

Show ScimConf Source # 
Instance details

Defined in LdapScimBridge

Eq ScimConf Source # 
Instance details

Defined in LdapScimBridge

type Rep ScimConf Source # 
Instance details

Defined in LdapScimBridge

data BridgeConf Source #

Instances

Instances details
FromJSON BridgeConf Source # 
Instance details

Defined in LdapScimBridge

Generic BridgeConf Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type Rep BridgeConf :: Type -> Type #

Show BridgeConf Source # 
Instance details

Defined in LdapScimBridge

type Rep BridgeConf Source # 
Instance details

Defined in LdapScimBridge

newtype PhantomParent a Source #

Work around orphan instances. Might not be a phantom, but I like the name. :)

Constructors

PhantomParent 

Fields

Instances

Instances details
FromJSON (PhantomParent Level) Source # 
Instance details

Defined in LdapScimBridge

Bounded a => Bounded (PhantomParent a) Source # 
Instance details

Defined in LdapScimBridge

Generic (PhantomParent a) Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type Rep (PhantomParent a) :: Type -> Type #

Show a => Show (PhantomParent a) Source # 
Instance details

Defined in LdapScimBridge

Eq a => Eq (PhantomParent a) Source # 
Instance details

Defined in LdapScimBridge

Ord a => Ord (PhantomParent a) Source # 
Instance details

Defined in LdapScimBridge

type Rep (PhantomParent a) Source # 
Instance details

Defined in LdapScimBridge

type Rep (PhantomParent a) = D1 ('MetaData "PhantomParent" "LdapScimBridge" "ldap-scim-bridge-0.10-inplace" 'True) (C1 ('MetaCons "PhantomParent" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPhantomParent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

data FieldMapping Source #

Constructors

FieldMapping 

Fields

Instances

Instances details
Show FieldMapping Source # 
Instance details

Defined in LdapScimBridge

data ScimTag Source #

Fill in the parameters for hscim User type with plausible defaults. (You may want to touch this if you're using the library for something new.)

Instances

Instances details
AuthTypes ScimTag Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type AuthData ScimTag #

type AuthInfo ScimTag #

GroupTypes ScimTag Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type GroupId ScimTag #

UserTypes ScimTag Source # 
Instance details

Defined in LdapScimBridge

Associated Types

type UserId ScimTag #

type UserExtra ScimTag #

type AuthData ScimTag Source # 
Instance details

Defined in LdapScimBridge

type AuthInfo ScimTag Source # 
Instance details

Defined in LdapScimBridge

type AuthInfo ScimTag = ()
type GroupId ScimTag Source # 
Instance details

Defined in LdapScimBridge

type UserExtra ScimTag Source # 
Instance details

Defined in LdapScimBridge

type UserId ScimTag Source # 
Instance details

Defined in LdapScimBridge

newtype Mapping Source #

Map attribute keys to functions from attribute values to changes to scim records. We'll start off with an empty scim record, and change it based on attributes we find that are listed in the mapping. Mappigns can fail, eg. if there is more than one attribute value for the attribute mapping to externalId.

Constructors

Mapping 

Instances

Instances details
FromJSON Mapping Source # 
Instance details

Defined in LdapScimBridge

Show Mapping Source # 
Instance details

Defined in LdapScimBridge

emptyScimUser :: User Source #

Note that the userName field is mandatory in SCIM, but we gloss over this by setting it to an empty Text here. See RequireUserName, ldapToScim if you wonder whether this is a good idea.

data RequireUserName Source #

Constructors

Lenient 
Strict 

Instances

Instances details
Show RequireUserName Source # 
Instance details

Defined in LdapScimBridge

Eq RequireUserName Source # 
Instance details

Defined in LdapScimBridge

ldapToScim :: forall m. m ~ Either [(SearchEntry, MappingError)] => RequireUserName -> BridgeConf -> SearchEntry -> m (SearchEntry, User) Source #

Translate an LDAP record into a SCIM record. If username is not provided in the LDAP record, behavior is defined by the first argument: if Lenient, just fill in an empty Text; if Strict, throw an error.

type Logger = Level -> Text -> IO () Source #

main :: IO () Source #