|
33 |
import re |
33 |
import re |
34 |
from functools import wraps |
34 |
from functools import wraps |
35 |
import random |
35 |
import random |
|
|
36 |
import collections |
36 |
|
37 |
|
37 |
import six |
38 |
import six |
38 |
import ldap |
39 |
import ldap |
Lines 686-692
class access(object):
|
Link Here
|
---|
|
686 |
vals = nal.setdefault(key, set()) |
687 |
vals = nal.setdefault(key, set()) |
687 |
vals |= set(val) |
688 |
vals |= set(val) |
688 |
|
689 |
|
689 |
nal = self.__encode_entry([(k, list(v)) for k, v in nal.items()]) |
690 |
nal = self.__encode_entry([(k, list(collections.OrderedDict.fromkeys(v))) for k, v in nal.items()]) |
690 |
|
691 |
|
691 |
try: |
692 |
try: |
692 |
rtype, rdata, rmsgid, resp_ctrls = self.lo.add_ext_s(dn, nal, serverctrls=serverctrls) |
693 |
rtype, rdata, rmsgid, resp_ctrls = self.lo.add_ext_s(dn, nal, serverctrls=serverctrls) |
Lines 740-746
class access(object):
|
Link Here
|
---|
|
740 |
val = None |
741 |
val = None |
741 |
else: |
742 |
else: |
742 |
continue |
743 |
continue |
743 |
ml.append((op, key, val)) |
744 |
ml.append((op, key, list(collections.OrderedDict.fromkeys(val)))) |
744 |
ml = self.__encode_entry(ml) |
745 |
ml = self.__encode_entry(ml) |
745 |
|
746 |
|
746 |
# check if we need to rename the object |
747 |
# check if we need to rename the object |