1376 lines
34 KiB
Plaintext
1376 lines
34 KiB
Plaintext
|
{
|
||
|
$Project$
|
||
|
$Workfile$
|
||
|
$Revision$
|
||
|
$DateUTC$
|
||
|
$Id$
|
||
|
|
||
|
This file is part of the Indy (Internet Direct) project, and is offered
|
||
|
under the dual-licensing agreement described on the Indy website.
|
||
|
(http://www.indyproject.org/)
|
||
|
|
||
|
Copyright:
|
||
|
(c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
|
||
|
}
|
||
|
{
|
||
|
$Log$
|
||
|
}
|
||
|
{
|
||
|
Rev 1.0 15/04/2005 7:25:04 AM GGrieve
|
||
|
first ported to INdy
|
||
|
}
|
||
|
|
||
|
unit IdLDAPV3;
|
||
|
|
||
|
interface
|
||
|
|
||
|
{$i IdCompilerDefines.inc}
|
||
|
|
||
|
uses
|
||
|
Classes,
|
||
|
IdContainers;
|
||
|
|
||
|
type
|
||
|
TIdLDAPV3ResultCode = (
|
||
|
lrcSuccess,
|
||
|
lrcOperationsError,
|
||
|
lrcProtocolError,
|
||
|
lrcTimeLimitExceeded,
|
||
|
lrcSizeLimitExceeded,
|
||
|
lrcCompareFalse,
|
||
|
lrcCompareTrue,
|
||
|
lrcAuthMethodNotSupported,
|
||
|
lrcStrongAuthRequired,
|
||
|
lrcReserved9,
|
||
|
lrcReferral,
|
||
|
lrcAdminLimitExceeded,
|
||
|
lrcUnavailableCriticalExtension,
|
||
|
lrcConfidentialityRequired,
|
||
|
lrcSaslBindInProgress,
|
||
|
lrcNoSuchAttribute,
|
||
|
lrcUndefinedAttributeType,
|
||
|
lrcInappropriateMatching,
|
||
|
lrcConstraintViolation,
|
||
|
lrcAttributeOrValueExists,
|
||
|
lrcInvalidAttributeSyntax,
|
||
|
lrcReserved22,
|
||
|
lrcReserved23,
|
||
|
lrcReserved24,
|
||
|
lrcReserved25,
|
||
|
lrcReserved26,
|
||
|
lrcReserved27,
|
||
|
lrcReserved28,
|
||
|
lrcReserved29,
|
||
|
lrcReserved30,
|
||
|
lrcReserved31,
|
||
|
lrcNoSuchObject,
|
||
|
lrcAliasProblem,
|
||
|
lrcInvalidDNSyntax,
|
||
|
lrcReserved_undefinedIsLeaf,
|
||
|
lrcAliasDereferencingProblem,
|
||
|
lrcReserved37,
|
||
|
lrcReserved38,
|
||
|
lrcReserved39,
|
||
|
lrcReserved40,
|
||
|
lrcReserved41,
|
||
|
lrcReserved42,
|
||
|
lrcReserved43,
|
||
|
lrcReserved44,
|
||
|
lrcReserved45,
|
||
|
lrcReserved46,
|
||
|
lrcReserved47,
|
||
|
lrcInappropriateAuthentication,
|
||
|
lrcInvalidCredentials,
|
||
|
lrcInsufficientAccessRights,
|
||
|
lrcBusy,
|
||
|
lrcUnavailable,
|
||
|
lrcUnwillingToPerform,
|
||
|
lrcLoopDetect,
|
||
|
lrcReserved55,
|
||
|
lrcReserved56,
|
||
|
lrcReserved57,
|
||
|
lrcReserved58,
|
||
|
lrcReserved59,
|
||
|
lrcReserved60,
|
||
|
lrcReserved61,
|
||
|
lrcReserved62,
|
||
|
lrcReserved63,
|
||
|
lrcNamingViolation,
|
||
|
lrcObjectClassViolation,
|
||
|
lrcNotAllowedOnNonLeaf,
|
||
|
lrcNotAllowedOnRDN,
|
||
|
lrcEntryAlreadyExists,
|
||
|
lrcObjectClassModsProhibited,
|
||
|
lrcReservedCLDAP,
|
||
|
lrcAffectsMultipleDSAs,
|
||
|
lrcReserved72,
|
||
|
lrcReserved73,
|
||
|
lrcReserved74,
|
||
|
lrcReserved75,
|
||
|
lrcReserved76,
|
||
|
lrcReserved77,
|
||
|
lrcReserved78,
|
||
|
lrcReserved79,
|
||
|
lrcOther);
|
||
|
|
||
|
TIdLDAPV3SearchScope = (ssBaseObject, ssSingleLevel, ssWholeSubtree);
|
||
|
|
||
|
TIdLDAPV3SearchDerefAliases = (sdNeverDerefAliases, sdDerefInSearching, sdDerefFindingBaseObj, sdDerefAlways);
|
||
|
|
||
|
TIdLDAPV3ModificationOperation = (moAdd, omDelete, moReplace);
|
||
|
|
||
|
const
|
||
|
NAMES_LDAPV3RESULTCODE: Array [TIdLDAPV3ResultCode] of String = (
|
||
|
'Success',
|
||
|
'OperationsError',
|
||
|
'ProtocolError',
|
||
|
'TimeLimitExceeded',
|
||
|
'SizeLimitExceeded',
|
||
|
'CompareFalse',
|
||
|
'CompareTrue',
|
||
|
'AuthMethodNotSupported',
|
||
|
'StrongAuthRequired',
|
||
|
'Reserved9',
|
||
|
'Referral',
|
||
|
'AdminLimitExceeded',
|
||
|
'UnavailableCriticalExtension',
|
||
|
'ConfidentialityRequired',
|
||
|
'SaslBindInProgress',
|
||
|
'NoSuchAttribute',
|
||
|
'UndefinedAttributeType',
|
||
|
'InappropriateMatching',
|
||
|
'ConstraintViolation',
|
||
|
'AttributeOrValueExists',
|
||
|
'InvalidAttributeSyntax',
|
||
|
'Reserved22',
|
||
|
'Reserved23',
|
||
|
'Reserved24',
|
||
|
'Reserved25',
|
||
|
'Reserved26',
|
||
|
'Reserved27',
|
||
|
'Reserved28',
|
||
|
'Reserved29',
|
||
|
'Reserved30',
|
||
|
'Reserved31',
|
||
|
'NoSuchObject',
|
||
|
'AliasProblem',
|
||
|
'InvalidDNSyntax',
|
||
|
'Reserved_undefinedIsLeaf',
|
||
|
'AliasDereferencingProblem',
|
||
|
'Reserved37',
|
||
|
'Reserved38',
|
||
|
'Reserved39',
|
||
|
'Reserved40',
|
||
|
'Reserved41',
|
||
|
'Reserved42',
|
||
|
'Reserved43',
|
||
|
'Reserved44',
|
||
|
'Reserved45',
|
||
|
'Reserved46',
|
||
|
'Reserved47',
|
||
|
'InappropriateAuthentication',
|
||
|
'InvalidCredentials',
|
||
|
'InsufficientAccessRights',
|
||
|
'Busy',
|
||
|
'Unavailable',
|
||
|
'UnwillingToPerform',
|
||
|
'LoopDetect',
|
||
|
'Reserved55',
|
||
|
'Reserved56',
|
||
|
'Reserved57',
|
||
|
'Reserved58',
|
||
|
'Reserved59',
|
||
|
'Reserved60',
|
||
|
'Reserved61',
|
||
|
'Reserved62',
|
||
|
'Reserved63',
|
||
|
'NamingViolation',
|
||
|
'ObjectClassViolation',
|
||
|
'NotAllowedOnNonLeaf',
|
||
|
'NotAllowedOnRDN',
|
||
|
'EntryAlreadyExists',
|
||
|
'ObjectClassModsProhibited',
|
||
|
'ReservedCLDAP',
|
||
|
'AffectsMultipleDSAs',
|
||
|
'Reserved72',
|
||
|
'Reserved73',
|
||
|
'Reserved74',
|
||
|
'Reserved75',
|
||
|
'Reserved76',
|
||
|
'Reserved77',
|
||
|
'Reserved78',
|
||
|
'Reserved79',
|
||
|
'Other');
|
||
|
|
||
|
NAMES_LDAPV3SEARCHSCOPE: Array [TIdLDAPV3SearchScope] of String =
|
||
|
('BaseObject', 'SingleLevel', 'WholeSubtree');
|
||
|
|
||
|
NAMES_LDAPV3SEARCHDEREFALIASES: Array [TIdLDAPV3SearchDerefAliases] of String =
|
||
|
('NeverDerefAliases', 'DerefInSearching', 'DerefFindingBaseObj', 'DerefAlways');
|
||
|
|
||
|
NAMES_LDAPV3MODIFICATIONOPERATION: Array [TIdLDAPV3ModificationOperation] of String =
|
||
|
('Add', 'Delete', 'Replace');
|
||
|
|
||
|
type
|
||
|
// simple types
|
||
|
TIdLDAPV3MessageID = Integer; // >= 0
|
||
|
|
||
|
TIdLDAPV3LDAPString = String; // UTF-8
|
||
|
TIdLDAPV3LDAPOID = String;
|
||
|
TIdLDAPV3LDAPDN = TIdLDAPV3LDAPString;
|
||
|
TIdLDAPV3RelativeLDAPDN = TIdLDAPV3LDAPString;
|
||
|
TIdLDAPV3AttributeType = TIdLDAPV3LDAPString;
|
||
|
TIdLDAPV3AttributeDescription = TIdLDAPV3LDAPString;
|
||
|
TIdLDAPV3AttributeValue = String;
|
||
|
TIdLDAPV3AssertionValue = String;
|
||
|
TIdLDAPV3MatchingRuleId = TIdLDAPV3LDAPString;
|
||
|
|
||
|
TIdLDAPV3AttributeDescriptionList = TStringList;
|
||
|
TIdLDAPV3AttributeValueSet = TStringList;
|
||
|
TIdLDAPV3Referral = TStringList;
|
||
|
|
||
|
// general Classes
|
||
|
TIdLDAPV3Control = Class (TObject)
|
||
|
private
|
||
|
FCriticality: Boolean;
|
||
|
FControlValue: String;
|
||
|
FControlType: TIdLDAPV3LDAPOID;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property controlType: TIdLDAPV3LDAPOID read FControlType write FControlType;
|
||
|
property criticality: Boolean read FCriticality write FCriticality; // DEFAULT FALSE
|
||
|
property controlValue: String read FControlValue write FControlValue; // OPTIONAL
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3ControlList = Class (TIdObjectList)
|
||
|
private
|
||
|
function GetControl(iIndex: Integer):TIdLDAPV3Control;
|
||
|
protected
|
||
|
public
|
||
|
property Control[iIndex: Integer]: TIdLDAPV3Control read GetControl; default;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3AttributeValueAssertion = Class (TObject)
|
||
|
private
|
||
|
FAssertionValue: TIdLDAPV3AssertionValue;
|
||
|
FAttributeDesc: TIdLDAPV3AttributeDescription;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property attributeDesc: TIdLDAPV3AttributeDescription read FAttributeDesc write FAttributeDesc;
|
||
|
property assertionValue: TIdLDAPV3AssertionValue read FAssertionValue write FAssertionValue;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3Attribute = Class (TObject)
|
||
|
private
|
||
|
FType: TIdLDAPV3AttributeDescription;
|
||
|
FVals: TIdLDAPV3AttributeValueSet;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property _type: TIdLDAPV3AttributeDescription read FType write FType;
|
||
|
property vals: TIdLDAPV3AttributeValueSet read FVals write FVals;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3AttributeList = Class (TIdObjectList)
|
||
|
private
|
||
|
function GetAttribute(iIndex: Integer):TIdLDAPV3Attribute;
|
||
|
protected
|
||
|
public
|
||
|
property Attribute[iIndex: Integer]: TIdLDAPV3Attribute read GetAttribute; default;
|
||
|
end;
|
||
|
|
||
|
// Message Classes
|
||
|
TIdLDAPV3LDAPResult = Class (TObject)
|
||
|
private
|
||
|
FMatchedDN: TIdLDAPV3LDAPDN;
|
||
|
FErrorMessage: TIdLDAPV3LDAPString;
|
||
|
FReferral: TIdLDAPV3Referral;
|
||
|
FResultCode: TIdLDAPV3ResultCode;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property resultCode: TIdLDAPV3ResultCode read FResultCode write FResultCode;
|
||
|
property matchedDN: TIdLDAPV3LDAPDN read FMatchedDN write FMatchedDN;
|
||
|
property errorMessage: TIdLDAPV3LDAPString read FErrorMessage write FErrorMessage;
|
||
|
property referral: TIdLDAPV3Referral read FReferral write FReferral; // OPTIONAL {3}
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3SaslCredentials = Class (TObject)
|
||
|
private
|
||
|
FCredentials: String;
|
||
|
FMechanism: TIdLDAPV3LDAPString;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property mechanism: TIdLDAPV3LDAPString read FMechanism write FMechanism;
|
||
|
property credentials: String read FCredentials write FCredentials; // OPTIONAL
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3AuthenticationChoice = Class (TObject)
|
||
|
private
|
||
|
FSimple: String;
|
||
|
FSasl: TIdLDAPV3SaslCredentials;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
// choice
|
||
|
property simple: String read FSimple write FSimple; {0}
|
||
|
property sasl: TIdLDAPV3SaslCredentials read FSasl write FSasl; {3}
|
||
|
end;
|
||
|
|
||
|
{0}
|
||
|
TIdLDAPV3BindRequest = Class (TObject)
|
||
|
private
|
||
|
FVersion: Byte;
|
||
|
FAuthentication: TIdLDAPv3AuthenticationChoice;
|
||
|
FName: TIdLDAPV3LDAPDN;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property version: Byte read FVersion write FVersion;
|
||
|
property name: TIdLDAPV3LDAPDN read FName write FName;
|
||
|
property authentication: TIdLDAPv3AuthenticationChoice read FAuthentication write FAuthentication;
|
||
|
end;
|
||
|
|
||
|
{1}
|
||
|
TIdLDAPV3BindResponse = Class (TIdLDAPv3LDAPResult)
|
||
|
private
|
||
|
FServerSaslCreds: String;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; override;
|
||
|
|
||
|
property serverSaslCreds: String read FServerSaslCreds write FServerSaslCreds; // optional {7}
|
||
|
end;
|
||
|
|
||
|
{2}
|
||
|
TIdLDAPV3UnbindRequest = Class (TObject)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3Substring = Class (TObject)
|
||
|
private
|
||
|
FAny: TIdLDAPV3LDAPString;
|
||
|
FFinal: TIdLDAPV3LDAPString;
|
||
|
FInitial: TIdLDAPV3LDAPString;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property initial: TIdLDAPV3LDAPString read FInitial write FInitial; {0}
|
||
|
property any: TIdLDAPV3LDAPString read FAny write FAny; {1}
|
||
|
property final: TIdLDAPV3LDAPString read FFinal write FFinal; {2}
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3SubstringList = Class (TIdObjectList)
|
||
|
private
|
||
|
function GetSubstring(iIndex: Integer):TIdLDAPV3Substring;
|
||
|
protected
|
||
|
public
|
||
|
property Substring[iIndex: Integer]: TIdLDAPV3Substring read GetSubstring; default;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3SubstringFilter = Class (TObject)
|
||
|
private
|
||
|
FType: TIdLDAPV3AttributeDescription;
|
||
|
FSubstrings: TIdLDAPV3SubstringList;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property _type: TIdLDAPV3AttributeDescription read FType write FType;
|
||
|
property substrings: TIdLDAPV3SubstringList read FSubstrings write FSubstrings; // rule: count > 0
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3MatchingRuleAssertion = Class (TObject)
|
||
|
private
|
||
|
FDnAttributes: Boolean;
|
||
|
FMatchValue: TIdLDAPV3AssertionValue;
|
||
|
FType: TIdLDAPV3AttributeDescription;
|
||
|
FMatchingRule: TIdLDAPV3MatchingRuleId;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property matchingRule: TIdLDAPV3MatchingRuleId read FMatchingRule write FMatchingRule;// OPTIONAL {1}
|
||
|
property _type: TIdLDAPV3AttributeDescription read FType write FType; // OPTIONAL {2}
|
||
|
property matchValue: TIdLDAPV3AssertionValue read FMatchValue write FMatchValue; // {3}
|
||
|
property dnAttributes: Boolean read FDnAttributes write FDnAttributes; // DEFAULT FALSE {4}
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3FilterList = Class;
|
||
|
|
||
|
TIdLDAPV3Filter = Class (TObject)
|
||
|
private
|
||
|
FPresent: TIdLDAPV3AttributeDescription;
|
||
|
FEqualityMatch: TIdLDAPV3AttributeValueAssertion;
|
||
|
FLessOrEqual: TIdLDAPV3AttributeValueAssertion;
|
||
|
FgreaterOrEqual: TIdLDAPV3AttributeValueAssertion;
|
||
|
FApproxMatch: TIdLDAPV3AttributeValueAssertion;
|
||
|
FNot: TIdLDAPV3Filter;
|
||
|
F_Or: TIdLDAPV3FilterList;
|
||
|
FAnd: TIdLDAPV3FilterList;
|
||
|
FExtensibleMatch: TIdLDAPV3MatchingRuleAssertion;
|
||
|
FSubstrings: TIdLDAPV3SubstringFilter;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property _and: TIdLDAPV3FilterList read FAnd write FAnd; {0}
|
||
|
property _or: TIdLDAPV3FilterList read F_Or write F_or; {1}
|
||
|
property _not: TIdLDAPV3Filter read FNot write FNot; {2}
|
||
|
property equalityMatch: TIdLDAPV3AttributeValueAssertion read FEqualityMatch write FEqualityMatch; {3}
|
||
|
property substrings: TIdLDAPV3SubstringFilter read FSubstrings write FSubstrings; {4}
|
||
|
property greaterOrEqual: TIdLDAPV3AttributeValueAssertion read FGreaterOrEqual write FGreaterOrEqual; {5}
|
||
|
property lessOrEqual: TIdLDAPV3AttributeValueAssertion read FLessOrEqual write FLessOrEqual; {6}
|
||
|
property present: TIdLDAPV3AttributeDescription read FPresent write FPresent; {7}
|
||
|
property approxMatch: TIdLDAPV3AttributeValueAssertion read FApproxMatch write FApproxMatch; {8}
|
||
|
property extensibleMatch: TIdLDAPV3MatchingRuleAssertion read FExtensibleMatch write FExtensibleMatch; {9}
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3FilterList = Class (TIdObjectList)
|
||
|
private
|
||
|
Function GetFilter(iIndex: Integer):TIdLDAPV3Filter;
|
||
|
protected
|
||
|
public
|
||
|
property Filter[iIndex: Integer]: TIdLDAPV3Filter read GetFilter; default;
|
||
|
end;
|
||
|
|
||
|
{3}
|
||
|
TIdLDAPV3SearchRequest = Class (TObject)
|
||
|
private
|
||
|
FTypesOnly: Boolean;
|
||
|
FTimeLimit: Integer;
|
||
|
FSizeLimit: Integer;
|
||
|
FAttributes: TIdLDAPV3AttributeDescriptionList;
|
||
|
FFilter: TIdLDAPV3Filter;
|
||
|
FBaseObject: TIdLDAPV3LDAPDN;
|
||
|
FDerefAliases: TIdLDAPV3SearchDerefAliases;
|
||
|
FScope: TIdLDAPV3SearchScope;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property baseObject: TIdLDAPV3LDAPDN read FBaseObject write FBaseObject;
|
||
|
property scope: TIdLDAPV3SearchScope read FScope write FScope;
|
||
|
property derefAliases: TIdLDAPV3SearchDerefAliases read FDerefAliases write FDerefAliases;
|
||
|
property sizeLimit: Integer read FSizeLimit write FSizeLimit;
|
||
|
property timeLimit: Integer read FTimeLimit write FTimeLimit;
|
||
|
property typesOnly: Boolean read FTypesOnly write FTypesOnly;
|
||
|
property filter: TIdLDAPV3Filter read FFilter write FFilter;
|
||
|
property attributes: TIdLDAPV3AttributeDescriptionList read FAttributes write FAttributes;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3PartialAttribute = Class (TObject)
|
||
|
private
|
||
|
FType: TIdLDAPV3AttributeDescription;
|
||
|
FVals: TIdLDAPV3AttributeValueSet;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property _type: TIdLDAPV3AttributeDescription read FType write FType;
|
||
|
property vals: TIdLDAPV3AttributeValueSet read FVals write FVals;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3PartialAttributeList = Class (TIdObjectList)
|
||
|
private
|
||
|
function GetPartialAttribute(iIndex: Integer):TIdLDAPV3PartialAttribute;
|
||
|
protected
|
||
|
public
|
||
|
property PartialAttribute[iIndex: Integer]: TIdLDAPV3PartialAttribute read GetPartialAttribute; default;
|
||
|
end;
|
||
|
|
||
|
{4}
|
||
|
TIdLDAPV3SearchResultEntry = Class (TObject)
|
||
|
private
|
||
|
FObjectName: TIdLDAPV3LDAPDN;
|
||
|
FAttributes: TIdLDAPV3PartialAttributeList;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property objectName: TIdLDAPV3LDAPDN read FObjectName write FObjectName;
|
||
|
property attributes: TIdLDAPV3PartialAttributeList read FAttributes write FAttributes;
|
||
|
end;
|
||
|
|
||
|
{5}
|
||
|
TIdLDAPV3SearchResultDone = Class (TIdLDAPV3LDAPResult)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3AttributeTypeAndValues = Class (TObject)
|
||
|
private
|
||
|
FType: TIdLDAPV3AttributeDescription;
|
||
|
FVals: TIdLDAPV3AttributeValueSet;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property _type: TIdLDAPV3AttributeDescription read FType write FType;
|
||
|
property vals: TIdLDAPV3AttributeValueSet read FVals write FVals;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3Modification = Class (TObject)
|
||
|
private
|
||
|
FModification: TIdLDAPV3AttributeTypeAndValues;
|
||
|
FOperation: TIdLDAPV3ModificationOperation;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property operation: TIdLDAPV3ModificationOperation read FOperation write FOperation;
|
||
|
property modification: TIdLDAPV3AttributeTypeAndValues read FModification write FModification;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3ModificationList = Class (TIdObjectList)
|
||
|
private
|
||
|
function GetModification(iIndex: Integer):TIdLDAPV3Modification;
|
||
|
protected
|
||
|
public
|
||
|
property Modification[iIndex: Integer]: TIdLDAPV3Modification read GetModification; default;
|
||
|
end;
|
||
|
|
||
|
{6}
|
||
|
TIdLDAPV3ModifyRequest = Class (TObject)
|
||
|
private
|
||
|
FObject: TIdLDAPV3LDAPDN;
|
||
|
FModifications: TIdLDAPV3ModificationList;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property _object: TIdLDAPV3LDAPDN read FObject write FObject;
|
||
|
property modifications: TIdLDAPV3ModificationList read FModifications write FModifications;
|
||
|
end;
|
||
|
|
||
|
{7}
|
||
|
TIdLDAPV3ModifyResponse = Class (TIdLDAPV3LDAPResult)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
{8}
|
||
|
TIdLDAPV3AddRequest = Class (TObject)
|
||
|
private
|
||
|
FAttributes: TIdLDAPV3AttributeList;
|
||
|
FEntry: TIdLDAPV3LDAPDN;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property entry: TIdLDAPV3LDAPDN read FEntry write FEntry;
|
||
|
property attributes: TIdLDAPV3AttributeList read FAttributes write FAttributes;
|
||
|
end;
|
||
|
|
||
|
{9}
|
||
|
TIdLDAPV3AddResponse = Class (TIdLDAPV3LDAPResult)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
{10}
|
||
|
TIdLDAPV3DelRequest = Class (TObject)
|
||
|
private
|
||
|
FEntry: TIdLDAPV3LDAPDN;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property entry: TIdLDAPV3LDAPDN read FEntry write FEntry;
|
||
|
end;
|
||
|
|
||
|
{11}
|
||
|
TIdLDAPV3DelResponse = Class(TIdLDAPV3LDAPResult)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
{12}
|
||
|
TIdLDAPV3ModifyDNRequest = Class (TObject)
|
||
|
private
|
||
|
FDeleteoldrdn: Boolean;
|
||
|
FNewSuperior: TIdLDAPV3LDAPDN;
|
||
|
FEntry: TIdLDAPV3LDAPDN;
|
||
|
FNewrdn: TIdLDAPV3RelativeLDAPDN;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property entry: TIdLDAPV3LDAPDN read FEntry write FEntry;
|
||
|
property newrdn: TIdLDAPV3RelativeLDAPDN read FNewrdn write FNewrdn;
|
||
|
property deleteoldrdn: Boolean read FDeleteoldrdn write FDeleteoldrdn;
|
||
|
property newSuperior: TIdLDAPV3LDAPDN read FNewSuperior write FNewSuperior; // OPTIONAL {0}
|
||
|
end;
|
||
|
|
||
|
{13}
|
||
|
TIdLDAPV3ModifyDNResponse = Class(TIdLDAPV3LDAPResult)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
{14}
|
||
|
TIdLDAPV3CompareRequest = Class (TObject)
|
||
|
private
|
||
|
FAva: TIdLDAPV3AttributeValueAssertion;
|
||
|
FEntry: TIdLDAPV3LDAPDN;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property entry: TIdLDAPV3LDAPDN read FEntry write FEntry;
|
||
|
property ava: TIdLDAPV3AttributeValueAssertion read FAva write FAva;
|
||
|
end;
|
||
|
|
||
|
{15}
|
||
|
TIdLDAPV3CompareResponse = Class(TIdLDAPV3LDAPResult)
|
||
|
public
|
||
|
end;
|
||
|
|
||
|
{16}
|
||
|
TIdLDAPV3AbandonRequest = Class (TObject)
|
||
|
private
|
||
|
FId: TIdLDAPV3MessageID;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property id: TIdLDAPV3MessageID read FId write FId;
|
||
|
end;
|
||
|
|
||
|
{19}
|
||
|
TIdLDAPV3SearchResultReference = Class (TObject)
|
||
|
private
|
||
|
FRef: TIdLDAPV3Referral;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property ref: TIdLDAPV3Referral read FRef write FRef;
|
||
|
end;
|
||
|
|
||
|
{23}
|
||
|
TIdLDAPV3ExtendedRequest = Class (TObject)
|
||
|
private
|
||
|
FRequestValue: String;
|
||
|
FRequestName: TIdLDAPV3LDAPOID;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property requestName: TIdLDAPV3LDAPOID read FRequestName write FRequestName; {0}
|
||
|
property requestValue: String read FRequestValue write FRequestValue; // OPTIONAL {1}
|
||
|
end;
|
||
|
|
||
|
{24}
|
||
|
TIdLDAPV3ExtendedResponse = Class (TIdLDAPV3LDAPResult)
|
||
|
private
|
||
|
FResponse: String;
|
||
|
FResponseName: TIdLDAPV3LDAPOID;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; override;
|
||
|
|
||
|
property responseName: TIdLDAPV3LDAPOID read FResponseName write FResponseName; // OPTIONAL {10}
|
||
|
property response: String read FResponse write FResponse; // OPTIONAL {11}
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3LDAPMessage = Class (TObject)
|
||
|
private
|
||
|
FAbandonRequest: TIdLDAPV3AbandonRequest;
|
||
|
FAddRequest: TIdLDAPV3AddRequest;
|
||
|
FAddResponse: TIdLDAPV3AddResponse;
|
||
|
FBindRequest: TIdLDAPV3BindRequest;
|
||
|
FBindResponse: TIdLDAPV3BindResponse;
|
||
|
FCompareRequest: TIdLDAPV3CompareRequest;
|
||
|
FCompareResponse: TIdLDAPV3CompareResponse;
|
||
|
FControls: TIdLDAPV3ControlList;
|
||
|
FDelRequest: TIdLDAPV3DelRequest;
|
||
|
FDelResponse: TIdLDAPV3DelResponse;
|
||
|
FExtendedReq: TIdLDAPV3ExtendedRequest;
|
||
|
FExtendedResp: TIdLDAPV3ExtendedResponse;
|
||
|
FMessageID: TIdLDAPV3MessageID;
|
||
|
FModDNRequest: TIdLDAPV3ModifyDNRequest;
|
||
|
FModDNResponse: TIdLDAPV3ModifyDNResponse;
|
||
|
FModifyRequest: TIdLDAPV3ModifyRequest;
|
||
|
FModifyResponse: TIdLDAPV3ModifyResponse;
|
||
|
FSearchRequest: TIdLDAPV3SearchRequest;
|
||
|
FSearchResDone: TIdLDAPV3SearchResultDone;
|
||
|
FSearchResEntry: TIdLDAPV3SearchResultEntry;
|
||
|
FSearchResRef: TIdLDAPV3SearchResultReference;
|
||
|
FUnbindRequest: TIdLDAPV3UnbindRequest;
|
||
|
public
|
||
|
constructor Create;
|
||
|
destructor Destroy; override;
|
||
|
procedure Clear; overload; virtual;
|
||
|
|
||
|
property messageID: TIdLDAPV3MessageID read FMessageID write FMessageID;
|
||
|
// protocolOp CHOICE
|
||
|
property bindRequest: TIdLDAPV3BindRequest read FBindRequest write FBindRequest;
|
||
|
property bindResponse: TIdLDAPV3BindResponse read FBindResponse write FBindResponse;
|
||
|
property unbindRequest: TIdLDAPV3UnbindRequest read FUnbindRequest write FUnbindRequest;
|
||
|
property searchRequest: TIdLDAPV3SearchRequest read FSearchRequest write FSearchRequest;
|
||
|
property searchResEntry: TIdLDAPV3SearchResultEntry read FSearchResEntry write FSearchResEntry;
|
||
|
property searchResDone: TIdLDAPV3SearchResultDone read FSearchResDone write FSearchResDone;
|
||
|
property searchResRef: TIdLDAPV3SearchResultReference read FSearchResRef write FSearchResRef;
|
||
|
property modifyRequest: TIdLDAPV3ModifyRequest read FModifyRequest write FModifyRequest;
|
||
|
property modifyResponse: TIdLDAPV3ModifyResponse read FModifyResponse write FModifyResponse;
|
||
|
property addRequest: TIdLDAPV3AddRequest read FAddRequest write FAddRequest;
|
||
|
property addResponse: TIdLDAPV3AddResponse read FAddResponse write FAddResponse;
|
||
|
property delRequest: TIdLDAPV3DelRequest read FDelRequest write FDelRequest;
|
||
|
property delResponse: TIdLDAPV3DelResponse read FDelResponse write FDelResponse;
|
||
|
property modDNRequest: TIdLDAPV3ModifyDNRequest read FModDNRequest write FModDNRequest;
|
||
|
property modDNResponse: TIdLDAPV3ModifyDNResponse read FModDNResponse write FModDNResponse;
|
||
|
property compareRequest: TIdLDAPV3CompareRequest read FCompareRequest write FCompareRequest;
|
||
|
property compareResponse: TIdLDAPV3CompareResponse read FCompareResponse write FCompareResponse;
|
||
|
property abandonRequest: TIdLDAPV3AbandonRequest read FAbandonRequest write FAbandonRequest;
|
||
|
property extendedReq: TIdLDAPV3ExtendedRequest read FExtendedReq write FExtendedReq;
|
||
|
property extendedResp: TIdLDAPV3ExtendedResponse read FExtendedResp write FExtendedResp;
|
||
|
property controls: TIdLDAPV3ControlList read FControls write FControls;
|
||
|
end;
|
||
|
|
||
|
TIdLDAPV3Message = TIdLDAPV3LDAPMessage;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
{ TIdLDAPV3Control }
|
||
|
|
||
|
constructor TIdLDAPV3Control.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3Control.Clear;
|
||
|
begin
|
||
|
FCriticality := False;
|
||
|
FControlValue := '';
|
||
|
FControlType := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3Control.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3ControlList }
|
||
|
|
||
|
Function TIdLDAPV3ControlList.GetControl(iIndex: Integer): TIdLDAPV3Control;
|
||
|
begin
|
||
|
Result := TIdLDAPV3Control(items[iIndex]);
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3AttributeValueAssertion }
|
||
|
|
||
|
constructor TIdLDAPV3AttributeValueAssertion.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3AttributeValueAssertion.Clear;
|
||
|
begin
|
||
|
FAssertionValue := '';
|
||
|
FAttributeDesc := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3AttributeValueAssertion.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3Attribute }
|
||
|
|
||
|
constructor TIdLDAPV3Attribute.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FVals := TIdLDAPV3AttributeValueSet.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3Attribute.Clear;
|
||
|
begin
|
||
|
FType := '';
|
||
|
FreeAndNil(FVals);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3Attribute.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3AttributeList }
|
||
|
|
||
|
Function TIdLDAPV3AttributeList.GetAttribute(iIndex: Integer): TIdLDAPV3Attribute;
|
||
|
begin
|
||
|
Result := TIdLDAPV3Attribute(items[iIndex]);
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3LDAPResult }
|
||
|
|
||
|
constructor TIdLDAPV3LDAPResult.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3LDAPResult.Clear;
|
||
|
begin
|
||
|
FMatchedDN := '';
|
||
|
FErrorMessage := '';
|
||
|
FResultCode := lrcSuccess;
|
||
|
FreeAndNil(FReferral);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3LDAPResult.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3SaslCredentials }
|
||
|
|
||
|
constructor TIdLDAPV3SaslCredentials.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3SaslCredentials.Clear;
|
||
|
begin
|
||
|
FCredentials := '';
|
||
|
FMechanism := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3SaslCredentials.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3AuthenticationChoice }
|
||
|
|
||
|
constructor TIdLDAPV3AuthenticationChoice.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3AuthenticationChoice.Clear;
|
||
|
begin
|
||
|
FSimple := '';
|
||
|
FreeAndNil(FSasl);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3AuthenticationChoice.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3BindRequest }
|
||
|
|
||
|
constructor TIdLDAPV3BindRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FAuthentication := TIdLDAPv3AuthenticationChoice.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3BindRequest.Clear;
|
||
|
begin
|
||
|
FVersion := 0;
|
||
|
FName := '';
|
||
|
FreeAndNil(FAuthentication);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3BindRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3BindResponse }
|
||
|
|
||
|
constructor TIdLDAPV3BindResponse.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3BindResponse.Clear;
|
||
|
begin
|
||
|
inherited;
|
||
|
|
||
|
FServerSaslCreds := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3BindResponse.Destroy;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3Substring }
|
||
|
|
||
|
constructor TIdLDAPV3Substring.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3Substring.Clear;
|
||
|
begin
|
||
|
FAny := '';
|
||
|
FFinal := '';
|
||
|
FInitial := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3Substring.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3SubstringList }
|
||
|
|
||
|
Function TIdLDAPV3SubstringList.GetSubstring(iIndex: Integer): TIdLDAPV3Substring;
|
||
|
begin
|
||
|
Result := TIdLDAPV3Substring(items[iIndex]);
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3SubstringFilter }
|
||
|
|
||
|
constructor TIdLDAPV3SubstringFilter.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FSubstrings := TIdLDAPV3SubstringList.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3SubstringFilter.Clear;
|
||
|
begin
|
||
|
FType := '';
|
||
|
FreeAndNil(FSubstrings);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3SubstringFilter.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3MatchingRuleAssertion }
|
||
|
|
||
|
constructor TIdLDAPV3MatchingRuleAssertion.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3MatchingRuleAssertion.Clear;
|
||
|
begin
|
||
|
FDnAttributes := False;
|
||
|
FMatchValue := '';
|
||
|
FType := '';
|
||
|
FMatchingRule := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3MatchingRuleAssertion.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3Filter }
|
||
|
|
||
|
constructor TIdLDAPV3Filter.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3Filter.Clear;
|
||
|
begin
|
||
|
FPresent := '';
|
||
|
FreeAndNil(FEqualityMatch);
|
||
|
FreeAndNil(FLessOrEqual);
|
||
|
FreeAndNil(FgreaterOrEqual);
|
||
|
FreeAndNil(FApproxMatch);
|
||
|
FreeAndNil(FNot);
|
||
|
FreeAndNil(F_Or);
|
||
|
FreeAndNil(FAnd);
|
||
|
FreeAndNil(FExtensibleMatch);
|
||
|
FreeAndNil(FSubstrings);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3Filter.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3FilterList }
|
||
|
|
||
|
Function TIdLDAPV3FilterList.GetFilter(iIndex: Integer): TIdLDAPV3Filter;
|
||
|
begin
|
||
|
Result := TIdLDAPV3Filter(items[iIndex]);
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3SearchRequest }
|
||
|
|
||
|
constructor TIdLDAPV3SearchRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FAttributes := TIdLDAPV3AttributeDescriptionList.Create;
|
||
|
FFilter := TIdLDAPV3Filter.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3SearchRequest.Clear;
|
||
|
begin
|
||
|
FTypesOnly := False;
|
||
|
FTimeLimit := 0;
|
||
|
FSizeLimit := 0;
|
||
|
FBaseObject := '';
|
||
|
FDerefAliases := sdNeverDerefAliases;
|
||
|
FScope := ssBaseObject;
|
||
|
FreeAndNil(FAttributes);
|
||
|
FreeAndNil(FFilter);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3SearchRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3PartialAttribute }
|
||
|
|
||
|
constructor TIdLDAPV3PartialAttribute.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FVals := TIdLDAPV3AttributeValueSet.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3PartialAttribute.Clear;
|
||
|
begin
|
||
|
FType := '';
|
||
|
FreeAndNil(FVals);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3PartialAttribute.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3PartialAttributeList }
|
||
|
|
||
|
Function TIdLDAPV3PartialAttributeList.GetPartialAttribute(iIndex: Integer): TIdLDAPV3PartialAttribute;
|
||
|
begin
|
||
|
Result := TIdLDAPV3PartialAttribute(items[iIndex]);
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3SearchResultEntry }
|
||
|
|
||
|
constructor TIdLDAPV3SearchResultEntry.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FAttributes := TIdLDAPV3PartialAttributeList.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3SearchResultEntry.Clear;
|
||
|
begin
|
||
|
FObjectName := '';
|
||
|
FreeAndNil(FAttributes);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3SearchResultEntry.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3AttributeTypeAndValues }
|
||
|
|
||
|
constructor TIdLDAPV3AttributeTypeAndValues.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FVals := TIdLDAPV3AttributeValueSet.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3AttributeTypeAndValues.Clear;
|
||
|
begin
|
||
|
FType := '';
|
||
|
FreeAndNil(FVals);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3AttributeTypeAndValues.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3Modification }
|
||
|
|
||
|
constructor TIdLDAPV3Modification.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FModification := TIdLDAPV3AttributeTypeAndValues.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3Modification.Clear;
|
||
|
begin
|
||
|
FOperation := moAdd;
|
||
|
FreeAndNil(FModification);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3Modification.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3ModificationList }
|
||
|
|
||
|
Function TIdLDAPV3ModificationList.GetModification(iIndex: Integer): TIdLDAPV3Modification;
|
||
|
begin
|
||
|
Result := TIdLDAPV3Modification(items[iIndex]);
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3ModifyRequest }
|
||
|
|
||
|
constructor TIdLDAPV3ModifyRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FModifications := TIdLDAPV3ModificationList.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3ModifyRequest.Clear;
|
||
|
begin
|
||
|
FObject := '';
|
||
|
FreeAndNil(FModifications);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3ModifyRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3AddRequest }
|
||
|
|
||
|
constructor TIdLDAPV3AddRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FAttributes := TIdLDAPV3AttributeList.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3AddRequest.Clear;
|
||
|
begin
|
||
|
FEntry := '';
|
||
|
FreeAndNil(FAttributes);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3AddRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3DelRequest }
|
||
|
|
||
|
constructor TIdLDAPV3DelRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3DelRequest.Clear;
|
||
|
begin
|
||
|
FEntry := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3DelRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3ModifyDNRequest }
|
||
|
|
||
|
constructor TIdLDAPV3ModifyDNRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3ModifyDNRequest.Clear;
|
||
|
begin
|
||
|
FDeleteoldrdn := False;
|
||
|
FNewSuperior := '';
|
||
|
FEntry := '';
|
||
|
FNewrdn := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3ModifyDNRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3CompareRequest }
|
||
|
|
||
|
constructor TIdLDAPV3CompareRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FAva := TIdLDAPV3AttributeValueAssertion.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3CompareRequest.Clear;
|
||
|
begin
|
||
|
FEntry := '';
|
||
|
FreeAndNil(FAva);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3CompareRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3AbandonRequest }
|
||
|
|
||
|
constructor TIdLDAPV3AbandonRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3AbandonRequest.Clear;
|
||
|
begin
|
||
|
FId := 0;
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3AbandonRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3SearchResultReference }
|
||
|
|
||
|
constructor TIdLDAPV3SearchResultReference.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
FRef := TIdLDAPV3Referral.Create;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3SearchResultReference.Clear;
|
||
|
begin
|
||
|
FreeAndNil(FRef);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3SearchResultReference.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3ExtendedRequest }
|
||
|
|
||
|
constructor TIdLDAPV3ExtendedRequest.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3ExtendedRequest.Clear;
|
||
|
begin
|
||
|
FRequestValue := '';
|
||
|
FRequestName := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3ExtendedRequest.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3ExtendedResponse }
|
||
|
|
||
|
constructor TIdLDAPV3ExtendedResponse.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3ExtendedResponse.Clear;
|
||
|
begin
|
||
|
inherited;
|
||
|
FResponse := '';
|
||
|
FResponseName := '';
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3ExtendedResponse.Destroy;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
{ TIdLDAPV3LDAPMessage }
|
||
|
|
||
|
constructor TIdLDAPV3LDAPMessage.Create;
|
||
|
begin
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
procedure TIdLDAPV3LDAPMessage.Clear;
|
||
|
begin
|
||
|
FMessageID := 0;
|
||
|
FreeAndNil(FAbandonRequest);
|
||
|
FreeAndNil(FAddRequest);
|
||
|
FreeAndNil(FAddResponse);
|
||
|
FreeAndNil(FBindRequest);
|
||
|
FreeAndNil(FBindResponse);
|
||
|
FreeAndNil(FCompareRequest);
|
||
|
FreeAndNil(FCompareResponse);
|
||
|
FreeAndNil(FControls);
|
||
|
FreeAndNil(FDelRequest);
|
||
|
FreeAndNil(FDelResponse);
|
||
|
FreeAndNil(FExtendedReq);
|
||
|
FreeAndNil(FExtendedResp);
|
||
|
FreeAndNil(FModDNRequest);
|
||
|
FreeAndNil(FModDNResponse);
|
||
|
FreeAndNil(FModifyRequest);
|
||
|
FreeAndNil(FModifyResponse);
|
||
|
FreeAndNil(FSearchRequest);
|
||
|
FreeAndNil(FSearchResDone);
|
||
|
FreeAndNil(FSearchResEntry);
|
||
|
FreeAndNil(FSearchResRef);
|
||
|
FreeAndNil(FUnbindRequest);
|
||
|
end;
|
||
|
|
||
|
destructor TIdLDAPV3LDAPMessage.Destroy;
|
||
|
begin
|
||
|
Clear;
|
||
|
inherited;
|
||
|
end;
|
||
|
|
||
|
End.
|