diff --git a/ldap_mapper/core.py b/ldap_mapper/core.py index c5fcff11428c7e3e8cd5638813a4bbff150ea450..57c8663ec421998c94f147860d3562512d4c15aa 100644 --- a/ldap_mapper/core.py +++ b/ldap_mapper/core.py @@ -60,12 +60,14 @@ class AddOperation: def apply_object(self, obj_state): obj_state.dn = self.dn obj_state.attributes = {name: values.copy() for name, values in self.attributes.items()} + obj_state.attributes['objectClass'] = obj_state.attributes.get('objectClass', []) + list(self.object_classes) def apply_session(self, session_state): assert self.dn not in session_state.objects session_state.objects[self.dn] = self.obj for name, values in self.attributes.items(): session_state.ref(self.obj, name, values) + session_state.ref(self.obj, 'objectClass', self.object_classes) def apply_ldap(self, conn): success = conn.add(self.dn, self.object_classes, self.attributes) diff --git a/ldap_mapper/relationship.py b/ldap_mapper/relationship.py index d8e256aa893712e8f219e632991db69968dd7e6a..cf5e42bb055e661bc6a72ba77d14900e38b53b7f 100644 --- a/ldap_mapper/relationship.py +++ b/ldap_mapper/relationship.py @@ -28,7 +28,7 @@ class RelationshipSet(MutableSet): def __iter__(self): def get(dn): - return make_modelobj(self.__ldap_object.session.get(dn, self.__model.ldap_filter_params), self.__destmodel) + return make_modelobj(self.__ldap_object.session.get(dn, self.__destmodel.ldap_filter_params), self.__destmodel) dns = set(self.__ldap_object.getattr(self.__name)) return iter(filter(lambda obj: obj is not None, map(get, dns))) diff --git a/uffd/user/views_user.py b/uffd/user/views_user.py index 63f17cf45605ba4356b73799706c55b0dadb4157..18b380b021521813abcc049682a7abc3705456ca 100644 --- a/uffd/user/views_user.py +++ b/uffd/user/views_user.py @@ -105,11 +105,11 @@ def csvimport(): if not newuser.set_mail(row[1]): flash("invalid mail address, skipped : {}".format(row)) continue + ldap.session.add(newuser) for role in roles: if (str(role.id) in row[2].split(';')) or role.name in current_app.config["ROLES_BASEROLES"]: role.members.add(newuser) newuser.update_groups() - ldap.session.add(newuser) try: ldap.session.commit() db.session.commit()