コード例 #1
0
    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
コード例 #2
0
 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
コード例 #3
0
    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