packages feed

ldap-client 0.2.0 → 0.3.0

raw patch · 4 files changed

+43/−29 lines, 4 filesdep +failnew-uploaderPVP ok

version bump matches the API change (PVP)

Dependencies added: fail

API changes (from Hackage documentation)

- Ldap.Asn1.ToAsn1: instance Ldap.Asn1.ToAsn1.ToAsn1 a => Ldap.Asn1.ToAsn1.ToAsn1 (Data.List.NonEmpty.NonEmpty a)
- Ldap.Client: instance GHC.Exception.Exception Ldap.Client.Disconnect
- Ldap.Client: instance GHC.Exception.Exception Ldap.Client.WrappedIOError
- Ldap.Client.Internal: instance GHC.Exception.Exception Ldap.Client.Internal.ResponseError
- Ldap.Client.Search: instance Data.Semigroup.Semigroup (Ldap.Client.Search.Mod a)
+ Ldap.Asn1.FromAsn1: instance Control.Monad.Fail.MonadFail (Ldap.Asn1.FromAsn1.Parser s)
+ Ldap.Asn1.ToAsn1: instance Ldap.Asn1.ToAsn1.ToAsn1 a => Ldap.Asn1.ToAsn1.ToAsn1 (GHC.Base.NonEmpty a)
+ Ldap.Client: instance GHC.Exception.Type.Exception Ldap.Client.Disconnect
+ Ldap.Client: instance GHC.Exception.Type.Exception Ldap.Client.WrappedIOError
+ Ldap.Client.Internal: instance GHC.Exception.Type.Exception Ldap.Client.Internal.ResponseError
+ Ldap.Client.Search: instance GHC.Base.Semigroup (Ldap.Client.Search.Mod a)
- Ldap.Asn1.Type: And :: !(NonEmpty Filter) -> Filter
+ Ldap.Asn1.Type: And :: !NonEmpty Filter -> Filter
- Ldap.Asn1.Type: Attribute :: !AttributeDescription -> !(NonEmpty AttributeValue) -> Attribute
+ Ldap.Asn1.Type: Attribute :: !AttributeDescription -> !NonEmpty AttributeValue -> Attribute
- Ldap.Asn1.Type: BindResponse :: !LdapResult -> !(Maybe ByteString) -> ProtocolServerOp
+ Ldap.Asn1.Type: BindResponse :: !LdapResult -> !Maybe ByteString -> ProtocolServerOp
- Ldap.Asn1.Type: Control :: !LdapOid -> !Bool -> !(Maybe ByteString) -> Control
+ Ldap.Asn1.Type: Control :: !LdapOid -> !Bool -> !Maybe ByteString -> Control
- Ldap.Asn1.Type: ExtendedRequest :: !LdapOid -> !(Maybe ByteString) -> ProtocolClientOp
+ Ldap.Asn1.Type: ExtendedRequest :: !LdapOid -> !Maybe ByteString -> ProtocolClientOp
- Ldap.Asn1.Type: ExtendedResponse :: !LdapResult -> !(Maybe LdapOid) -> !(Maybe ByteString) -> ProtocolServerOp
+ Ldap.Asn1.Type: ExtendedResponse :: !LdapResult -> !Maybe LdapOid -> !Maybe ByteString -> ProtocolServerOp
- Ldap.Asn1.Type: IntermediateResponse :: !(Maybe LdapOid) -> !(Maybe ByteString) -> ProtocolServerOp
+ Ldap.Asn1.Type: IntermediateResponse :: !Maybe LdapOid -> !Maybe ByteString -> ProtocolServerOp
- Ldap.Asn1.Type: LdapMessage :: !Id -> !op -> !(Maybe Controls) -> LdapMessage op
+ Ldap.Asn1.Type: LdapMessage :: !Id -> !op -> !Maybe Controls -> LdapMessage op
- Ldap.Asn1.Type: LdapResult :: !ResultCode -> !LdapDn -> !LdapString -> !(Maybe ReferralUris) -> LdapResult
+ Ldap.Asn1.Type: LdapResult :: !ResultCode -> !LdapDn -> !LdapString -> !Maybe ReferralUris -> LdapResult
- Ldap.Asn1.Type: MatchingRuleAssertion :: !(Maybe MatchingRuleId) -> !(Maybe AttributeDescription) -> !AssertionValue -> !Bool -> MatchingRuleAssertion
+ Ldap.Asn1.Type: MatchingRuleAssertion :: !Maybe MatchingRuleId -> !Maybe AttributeDescription -> !AssertionValue -> !Bool -> MatchingRuleAssertion
- Ldap.Asn1.Type: ModifyDnRequest :: !LdapDn -> !RelativeLdapDn -> !Bool -> !(Maybe LdapDn) -> ProtocolClientOp
+ Ldap.Asn1.Type: ModifyDnRequest :: !LdapDn -> !RelativeLdapDn -> !Bool -> !Maybe LdapDn -> ProtocolClientOp
- Ldap.Asn1.Type: Or :: !(NonEmpty Filter) -> Filter
+ Ldap.Asn1.Type: Or :: !NonEmpty Filter -> Filter
- Ldap.Asn1.Type: ReferralUris :: (NonEmpty Uri) -> ReferralUris
+ Ldap.Asn1.Type: ReferralUris :: NonEmpty Uri -> ReferralUris
- Ldap.Asn1.Type: Sasl :: !SaslMechanism -> !(Maybe Text) -> AuthenticationChoice
+ Ldap.Asn1.Type: Sasl :: !SaslMechanism -> !Maybe Text -> AuthenticationChoice
- Ldap.Asn1.Type: SearchResultReference :: !(NonEmpty Uri) -> ProtocolServerOp
+ Ldap.Asn1.Type: SearchResultReference :: !NonEmpty Uri -> ProtocolServerOp
- Ldap.Asn1.Type: SubstringFilter :: !AttributeDescription -> !(NonEmpty Substring) -> SubstringFilter
+ Ldap.Asn1.Type: SubstringFilter :: !AttributeDescription -> !NonEmpty Substring -> SubstringFilter
- Ldap.Asn1.Type: [ldapMessageControls] :: LdapMessage op -> !(Maybe Controls)
+ Ldap.Asn1.Type: [ldapMessageControls] :: LdapMessage op -> !Maybe Controls
- Ldap.Client: And :: !(NonEmpty Filter) -> Filter
+ Ldap.Client: And :: !NonEmpty Filter -> Filter
- Ldap.Client: Or :: !(NonEmpty Filter) -> Filter
+ Ldap.Client: Or :: !NonEmpty Filter -> Filter
- Ldap.Client: SearchEntry :: !Dn -> !(AttrList []) -> SearchEntry
+ Ldap.Client: SearchEntry :: !Dn -> !AttrList [] -> SearchEntry
- Ldap.Client: data NonEmpty a :: * -> *
+ Ldap.Client: data NonEmpty a
- Ldap.Client: data PortNumber :: *
+ Ldap.Client: data PortNumber
- Ldap.Client.Internal: New :: !Request -> !(TMVar (NonEmpty ProtocolServerOp)) -> ClientMessage
+ Ldap.Client.Internal: New :: !Request -> !TMVar (NonEmpty ProtocolServerOp) -> ClientMessage
- Ldap.Client.Internal: data PortNumber :: *
+ Ldap.Client.Internal: data PortNumber
- Ldap.Client.Search: And :: !(NonEmpty Filter) -> Filter
+ Ldap.Client.Search: And :: !NonEmpty Filter -> Filter
- Ldap.Client.Search: Or :: !(NonEmpty Filter) -> Filter
+ Ldap.Client.Search: Or :: !NonEmpty Filter -> Filter
- Ldap.Client.Search: SearchEntry :: !Dn -> !(AttrList []) -> SearchEntry
+ Ldap.Client.Search: SearchEntry :: !Dn -> !AttrList [] -> SearchEntry

Files

README.markdown view
@@ -1,27 +1,27 @@ ldap-client =========== [![Hackage](https://budueba.com/hackage/ldap-client)](https://hackage.haskell.org/package/ldap-client)-[![Build Status](https://travis-ci.org/supki/ldap-client.svg?branch=master)](https://travis-ci.org/supki/ldap-client)+[![Build Status](https://travis-ci.org/alasconnect/ldap-client.svg?branch=master)](https://travis-ci.org/alasconnect/ldap-client)  This library implements (the parts of) [RFC 4511][rfc4511] -          Feature            |   RFC Section   |   Support-:--------------------------- |:---------------:|:-----------:-Bind Operation               | [4.2][4.2]      | ✔-Unbind Operation             | [4.3][4.3]      | ✔-Unsolicited Notification     | [4.4][4.4]      | ✔-Notice of Disconnection      | [4.4.1][4.4.1]  | ✔-Search Operation             | [4.5][4.5]      | ✔\*-Modify Operation             | [4.6][4.6]      | ✔-Add Operation                | [4.7][4.7]      | ✔-Delete Operation             | [4.8][4.8]      | ✔-Modify DN Operation          | [4.9][4.9]      | ✔-Compare Operation            | [4.10][4.10]    | ✔-Abandon Operation            | [4.11][4.11]    | ✘-Extended Operation           | [4.12][4.12]    | ✔-IntermediateResponse Message | [4.13][4.13]    | ✔-StartTLS Operation           | [4.14][4.14]    | ✔†-LDAP over TLS                | -               | ✔+|           Feature            |   RFC Section   |   Support+|:---------------------------- |:---------------:|:-----------:+| Bind Operation               | [4.2][4.2]      | ✔+| Unbind Operation             | [4.3][4.3]      | ✔+| Unsolicited Notification     | [4.4][4.4]      | ✔+| Notice of Disconnection      | [4.4.1][4.4.1]  | ✔+| Search Operation             | [4.5][4.5]      | ✔\*+| Modify Operation             | [4.6][4.6]      | ✔+| Add Operation                | [4.7][4.7]      | ✔+| Delete Operation             | [4.8][4.8]      | ✔+| Modify DN Operation          | [4.9][4.9]      | ✔+| Compare Operation            | [4.10][4.10]    | ✔+| Abandon Operation            | [4.11][4.11]    | ✘+| Extended Operation           | [4.12][4.12]    | ✔+| IntermediateResponse Message | [4.13][4.13]    | ✔+| StartTLS Operation           | [4.14][4.14]    | ✔†+| LDAP over TLS                | -               | ✔  \* The `:dn` thing is unsupported in Extensible matches   † Only serves as an example of Extended Operation.  It's useless for all practical purposes as it does not actually enable TLS.  In other words, use LDAP over TLS instead.
ldap-client.cabal view
@@ -1,30 +1,30 @@ name:                ldap-client-version:             0.2.0+version:             0.3.0 synopsis:            Pure Haskell LDAP Client Library description:   Pure Haskell LDAP client library implementing (the parts of) RFC 4511.-homepage:            https://supki.github.io/ldap-client+homepage:            https://github.com/alasconnect/ldap-client license:             BSD2 license-file:        LICENSE-author:              Matvey Aksenov-maintainer:          matvey.aksenov@gmail.com-copyright:           2015 Matvey Aksenov+author:              Matvey Aksenov, AlasConnect LLC+maintainer:          matvey.aksenov@gmail.com, software@alasconnect.com+copyright:           2015 Matvey Aksenov, 2019 AlasConnect LLC category:            Network build-type:          Simple cabal-version:       >= 1.10 tested-with:-    GHC == 7.6.3-  , GHC == 7.8.4-  , GHC == 7.10.1-  , GHC == 8.0.1+    GHC == 8.0.1+  , GHC == 8.2.2+  , GHC == 8.4.4+  , GHC == 8.6.5 extra-source-files:   README.markdown   CHANGELOG.markdown  source-repository head   type:     git-  location: git@github.com:supki/ldap-client-  tag:      0.2.0+  location: git@github.com:alasconnect/ldap-client+  tag:      0.3.0  library   ghc-options:@@ -57,6 +57,7 @@     , bytestring     , connection    >= 0.2     , containers+    , fail     , network       >= 2.6     , semigroups    >= 0.16     , stm
src/Ldap/Asn1/FromAsn1.hs view
@@ -11,6 +11,9 @@ import           Control.Applicative (Applicative(..), Alternative(..), liftA2, optional) #endif import           Control.Monad (MonadPlus(..), (>=>), guard)+#if __GLASGOW_HASKELL__ >= 86+import           Control.Monad.Fail (MonadFail, fail)+#endif import           Data.ASN1.Types (ASN1) import qualified Data.ASN1.Types as Asn1 import           Data.Foldable (asum)@@ -415,6 +418,11 @@   mzero = Parser (\_ -> mzero)   Parser ma `mplus` Parser mb =     Parser (\s -> ma s `mplus` mb s)++#if __GLASGOW_HASKELL__ >= 86+instance MonadFail (Parser s) where+  fail _ = mzero+#endif  parse :: Parser s a -> s -> Maybe (s, a) parse = unParser
src/Ldap/Client/Internal.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE NamedFieldPuns #-} module Ldap.Client.Internal@@ -35,7 +36,11 @@ import           Data.List.NonEmpty (NonEmpty) import           Data.Text (Text) import           Data.Typeable (Typeable)+#if __GLASGOW_HASKELL__ >= 84+import           Network.Socket (PortNumber)+#else import           Network (PortNumber)+#endif import           Network.Connection (TLSSettings)  import qualified Ldap.Asn1.Type as Type