def __init__(self, dn=None, changetype='add', **kwargs): self.__dict__['_dn'] = dn self.__dict__['_changetype'] = changetype for key, value in kwargs.items(): if key not in self._attributes: raise LDAPAttributeError('attribute not found') self._attributes[key]._init = value
def _store_attr(self, attr, value=[], init=False): if not self._get_field(attr): raise LDAPAttributeError('attribute not found') if value is None: value = [] if not self._attributes.get(attr): self._attributes[attr] = LDAPAttribute(self._get_field_name(attr)) self._attributes[attr].value = value if init: self._attributes[attr].__dict__['changetype'] = None
def __setattr__(self, item, value): if item not in ['value', '_init']: raise LDAPAttributeError('can not set key') # set changetype if item is 'value': if self.__dict__['values']: if not value: self.__dict__['changetype'] = MODIFY_DELETE else: self.__dict__['changetype'] = MODIFY_REPLACE else: self.__dict__['changetype'] = MODIFY_ADD if isinstance(value, (STRING_TYPES, NUMERIC_TYPES)): value = [value] self.__dict__['values'] = value