Lines 844-852
def _ldap_object_classes(self, ml):
|
Link Here
|
---|
|
844 |
must, may = schema.attribute_types(ocs) |
844 |
must, may = schema.attribute_types(ocs) |
845 |
allowed = set(name.lower() for attr in may.values() for name in attr.names) | set(name.lower() for attr in must.values() for name in attr.names) |
845 |
allowed = set(name.lower() for attr in may.values() for name in attr.names) | set(name.lower() for attr in must.values() for name in attr.names) |
846 |
|
846 |
|
847 |
_ml = [x for x in ml if x[0].lower() != 'objectclass'] |
847 |
ml = [x for x in ml if x[0].lower() != 'objectclass'] |
848 |
_ml.append(('objectClass', self.oldattr.get('objectClass', []), list(ocs))) |
848 |
ml.append(('objectClass', self.oldattr.get('objectClass', []), list(ocs))) |
849 |
newattr = ldap.cidict.cidict(_MergedAttributes(self, _ml).get_attributes()) |
849 |
newattr = ldap.cidict.cidict(_MergedAttributes(self, ml).get_attributes()) |
850 |
|
850 |
|
851 |
# make sure only attributes known by the object classes are set |
851 |
# make sure only attributes known by the object classes are set |
852 |
for attr, val in newattr.items(): |
852 |
for attr, val in newattr.items(): |
Lines 2837-2843
def __init__(self, obj, modlist):
|
Link Here
|
---|
|
2837 |
|
2837 |
|
2838 |
def get_attributes(self): |
2838 |
def get_attributes(self): |
2839 |
attributes = set(self.obj.oldattr.keys()) | set(x[0] for x in self.modlist) |
2839 |
attributes = set(self.obj.oldattr.keys()) | set(x[0] for x in self.modlist) |
2840 |
return dict((attr, self.get_attribute(attr)) for attr in attributes) |
2840 |
return dict((re.sub(';binary$', '', attr), self.get_attribute(attr)) for attr in attributes) |
2841 |
|
2841 |
|
2842 |
def get_attribute(self, attr): |
2842 |
def get_attribute(self, attr): |
2843 |
values = set(self.obj.oldattr.get(attr, [])) |
2843 |
values = set(self.obj.oldattr.get(attr, [])) |