Class attributes in doc strings
This commit is contained in:
90
Lib/ldap/controls/readentry.py
Normal file
90
Lib/ldap/controls/readentry.py
Normal file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
ldap.controls.readentry - classes for the Read Entry controls
|
||||
(see RFC 4527)
|
||||
|
||||
See http://www.python-ldap.org/ for project details.
|
||||
|
||||
$Id: readentry.py,v 1.4 2011/07/28 08:57:12 stroeder Exp $
|
||||
"""
|
||||
|
||||
import ldap
|
||||
|
||||
from pyasn1.codec.ber import encoder,decoder
|
||||
from ldap.controls import LDAPControl,KNOWN_RESPONSE_CONTROLS
|
||||
|
||||
from pyasn1_modules.rfc2251 import AttributeDescriptionList,SearchResultEntry
|
||||
|
||||
|
||||
class ReadEntryControl(LDAPControl):
|
||||
"""
|
||||
Base class for read entry control described in RFC 4527
|
||||
|
||||
attrList
|
||||
list of attribute type names requested
|
||||
|
||||
Class attributes with values extracted from the response control:
|
||||
|
||||
dn
|
||||
string holding the distinguished name of the LDAP entry
|
||||
entry
|
||||
dictionary holding the LDAP entry
|
||||
"""
|
||||
|
||||
def __init__(self,criticality=False,attrList=None):
|
||||
self.criticality,self.attrList,self.entry = criticality,attrList or [],None
|
||||
|
||||
def encodeControlValue(self):
|
||||
attributeSelection = AttributeDescriptionList()
|
||||
for i in range(len(self.attrList)):
|
||||
attributeSelection.setComponentByPosition(i,self.attrList[i])
|
||||
return encoder.encode(attributeSelection)
|
||||
|
||||
def decodeControlValue(self,encodedControlValue):
|
||||
decodedEntry,_ = decoder.decode(encodedControlValue,asn1Spec=SearchResultEntry())
|
||||
self.dn = str(decodedEntry[0])
|
||||
self.entry = {}
|
||||
for attr in decodedEntry[1]:
|
||||
self.entry[str(attr[0])] = [ str(attr_value) for attr_value in attr[1] ]
|
||||
|
||||
|
||||
class PreReadControl(ReadEntryControl):
|
||||
"""
|
||||
Class for pre-read control described in RFC 4527
|
||||
|
||||
attrList
|
||||
list of attribute type names requested
|
||||
|
||||
Class attributes with values extracted from the response control:
|
||||
|
||||
dn
|
||||
string holding the distinguished name of the LDAP entry
|
||||
before the operation was done by the server
|
||||
entry
|
||||
dictionary holding the LDAP entry
|
||||
before the operation was done by the server
|
||||
"""
|
||||
controlType = ldap.CONTROL_PRE_READ
|
||||
|
||||
KNOWN_RESPONSE_CONTROLS[PreReadControl.controlType] = PreReadControl
|
||||
|
||||
|
||||
class PostReadControl(ReadEntryControl):
|
||||
"""
|
||||
Class for post-read control described in RFC 4527
|
||||
|
||||
attrList
|
||||
list of attribute type names requested
|
||||
|
||||
Class attributes with values extracted from the response control:
|
||||
|
||||
dn
|
||||
string holding the distinguished name of the LDAP entry
|
||||
after the operation was done by the server
|
||||
entry
|
||||
dictionary holding the LDAP entry
|
||||
after the operation was done by the server
|
||||
"""
|
||||
controlType = ldap.CONTROL_POST_READ
|
||||
|
||||
KNOWN_RESPONSE_CONTROLS[PostReadControl.controlType] = PostReadControl
|
||||
Reference in New Issue
Block a user