From 73f3f72dec79614116c8ea3a937f1738b91eb405 Mon Sep 17 00:00:00 2001 From: Julian Rother <julian@jrother.eu> Date: Wed, 28 Jul 2021 22:22:22 +0200 Subject: [PATCH] Completed class attribute type annotations in ldap.py --- ldapserver/ldap.py | 82 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/ldapserver/ldap.py b/ldapserver/ldap.py index 9a1e24d..232172f 100644 --- a/ldapserver/ldap.py +++ b/ldapserver/ldap.py @@ -261,6 +261,10 @@ class LDAPResult(asn1.Sequence): (LDAPString, 'diagnosticMessage', '', False), ] + resultCode: LDAPResultCode + matchedDN: str + diagnosticMessage: str + class AttributeSelection(asn1.SequenceOf): SET_TYPE = LDAPString @@ -287,6 +291,9 @@ class SaslCredentials(asn1.Sequence, AuthenticationChoice): (asn1.OctetString, 'credentials', None, True), ] + mechanism: str + credentials: bytes + class AttributeValueSet(asn1.Set): SET_TYPE = asn1.OctetString @@ -296,6 +303,9 @@ class PartialAttribute(asn1.Sequence): (AttributeValueSet, 'vals', lambda: [], False), ] + type: str + vals: typing.List[bytes] + class PartialAttributeList(asn1.SequenceOf): SET_TYPE = PartialAttribute @@ -306,6 +316,9 @@ class Attribute(asn1.Sequence): (AttributeValueSet, 'vals', lambda: [], False), ] + type: str + vals: typing.List[bytes] + class AttributeList(asn1.SequenceOf): SET_TYPE = Attribute @@ -320,6 +333,10 @@ class BindRequest(asn1.Sequence, ProtocolOp): (AuthenticationChoice, 'authentication', lambda: SimpleAuthentication(), False) # pylint: disable=unnecessary-lambda ] + version: int + name: str + authentication: AuthenticationChoice + class BindResponse(asn1.Sequence, ProtocolOp): BER_TAG = (1, True, 1) SEQUENCE_FIELDS = [ @@ -329,6 +346,11 @@ class BindResponse(asn1.Sequence, ProtocolOp): (asn1.retag(asn1.OctetString, (2, False, 7)), 'serverSaslCreds', None, True) ] + resultCode: LDAPResultCode + matchedDN: str + diagnosticMessage: str + serverSaslCreds: bytes + class UnbindRequest(asn1.Sequence, ProtocolOp): BER_TAG = (1, False, 2) @@ -345,6 +367,15 @@ class SearchRequest(asn1.Sequence, ProtocolOp): (AttributeSelection, 'attributes', lambda: [], False) ] + baseObject: str + scope: SearchScope + derefAliases: DerefAliases + sizeLimit: int + timeLimit: int + typesOnly: bool + filter: Filter + attributes: typing.List[str] + @classmethod def from_ber(cls, data): return super().from_ber(data) @@ -356,6 +387,9 @@ class SearchResultEntry(asn1.Sequence, ProtocolOp): (PartialAttributeList, 'attributes', lambda: [], False), ] + objectName: str + attributes: typing.List[PartialAttribute] + class SearchResultDone(LDAPResult, ProtocolOp): BER_TAG = (1, True, 5) @@ -370,6 +404,8 @@ class ModifyChange(asn1.Sequence): (asn1.wrapenum(ModifyOperation), 'operation', None, False), (PartialAttribute, 'modification', None, False), ] + operation: ModifyOperation + modification: PartialAttribute class ModifyChanges(asn1.SequenceOf): SET_TYPE = ModifyChange @@ -380,6 +416,8 @@ class ModifyRequest(asn1.Sequence, ProtocolOp): (LDAPString, 'object', None, False), (ModifyChanges, 'changes', None, False), ] + object: str + changes: typing.List[ModifyChange] class ModifyResponse(LDAPResult, ProtocolOp): BER_TAG = (1, True, 7) @@ -390,6 +428,8 @@ class AddRequest(asn1.Sequence, ProtocolOp): (LDAPString, 'entry', None, False), (AttributeList, 'attributes', None, False), ] + entry: str + attributes: Attribute class AddResponse(LDAPResult, ProtocolOp): BER_TAG = (1, True, 9) @@ -400,6 +440,8 @@ class DelRequest(asn1.Wrapper, ProtocolOp): WRAPPED_TYPE = LDAPString WRAPPED_DEFAULT = None + dn: str + class DelResponse(LDAPResult, ProtocolOp): BER_TAG = (1, True, 11) @@ -412,6 +454,11 @@ class ModifyDNRequest(asn1.Sequence, ProtocolOp): (asn1.retag(LDAPString, (2, False, 0)), 'newSuperior', None, True), ] + entry: str + newrdn: str + deleteoldrdn: bool + newSuperior: str + class ModifyDNResponse(LDAPResult, ProtocolOp): BER_TAG = (1, True, 13) @@ -422,6 +469,9 @@ class CompareRequest(asn1.Sequence, ProtocolOp): (AttributeValueAssertion, 'ava', None, False), ] + entry: str + ava: AttributeValueAssertion + class CompareResponse(LDAPResult, ProtocolOp): BER_TAG = (1, True, 15) @@ -431,6 +481,8 @@ class AbandonRequest(asn1.Wrapper, ProtocolOp): WRAPPED_TYPE = asn1.Integer WRAPPED_DEFAULT = None + messageID: int + class ExtendedRequest(asn1.Sequence, ProtocolOp): BER_TAG = (1, True, 23) SEQUENCE_FIELDS = [ @@ -438,6 +490,9 @@ class ExtendedRequest(asn1.Sequence, ProtocolOp): (asn1.retag(asn1.OctetString, (2, False, 1)), 'requestValue', None, True), ] + requestName: str + requestValue: bytes + class ExtendedResponse(asn1.Sequence, ProtocolOp): BER_TAG = (1, True, 24) SEQUENCE_FIELDS = [ @@ -448,6 +503,12 @@ class ExtendedResponse(asn1.Sequence, ProtocolOp): (asn1.retag(asn1.OctetString, (2, False, 11)), 'responseValue', None, True), ] + resultCode: LDAPResultCode + matchedDN: str + diagnosticMessage: str + responseName: str + responseValue: bytes + class IntermediateResponse(asn1.Sequence, ProtocolOp): BER_TAG = (1, True, 25) SEQUENCE_FIELDS = [ @@ -455,6 +516,9 @@ class IntermediateResponse(asn1.Sequence, ProtocolOp): (asn1.retag(asn1.OctetString, (2, False, 1)), 'responseValue', None, True), ] + responseName: str + responseValue: bytes + class Control(asn1.Sequence): SEQUENCE_FIELDS = [ (LDAPOID, 'controlType', None, False), @@ -462,6 +526,10 @@ class Control(asn1.Sequence): (asn1.OctetString, 'controlValue', None, True), ] + controlType: str + criticality: bool + controlValue: bytes + class Controls(asn1.SequenceOf): BER_TAG = (2, True, 0) SET_TYPE = Control @@ -473,10 +541,18 @@ class LDAPMessage(asn1.Sequence): (Controls, 'controls', None, True) ] + messageID: int + protocolOp: ProtocolOp + controls: typing.List[Control] + class ShallowLDAPMessage(asn1.BERType): BER_TAG = (0, True, 16) # pylint: disable=invalid-name + messageID: int + protocolOpType: typing.Type[ProtocolOp] + data: bytes + def __init__(self, messageID=None, protocolOpType=None, data=None): self.messageID = messageID self.protocolOpType = protocolOpType @@ -518,7 +594,13 @@ class PasswdModifyRequestValue(asn1.Sequence): (asn1.retag(asn1.OctetString, (2, False, 2)), 'newPasswd', None, True), ] + userIdentity: str + oldPasswd: bytes + newPasswd: bytes + class PasswdModifyResponseValue(asn1.Sequence): SEQUENCE_FIELDS = [ (asn1.retag(asn1.OctetString, (2, False, 0)), 'genPasswd', None, True), ] + + genPasswd: bytes -- GitLab