sobjects/ldapparser.py
changeset 8683 d537786e52b8
parent 8645 310040c668c0
parent 8679 cf4dacc80976
child 8694 d901c36bcfce
--- a/sobjects/ldapparser.py	Fri Jan 25 13:28:23 2013 +0100
+++ b/sobjects/ldapparser.py	Fri Jan 25 14:33:40 2013 +0100
@@ -130,8 +130,10 @@
         super(DataFeedLDAPAdapter, self).after_entity_copy(entity, sourceparams)
         if entity.__regid__ == 'EmailAddress':
             return
-        groups = [self._get_group(n) for n in self.source.user_default_groups]
-        entity.cw_set(in_group=groups)
+        groups = filter(None, [self._get_group(name)
+                               for name in self.source.user_default_groups])
+        if groups:
+            entity.cw_set(in_group=groups)
         self._process_email(entity, sourceparams)
 
     def is_deleted(self, extidplus, etype, eid):
@@ -172,5 +174,11 @@
 
     @cached
     def _get_group(self, name):
-        return self._cw.execute('Any X WHERE X is CWGroup, X name %(name)s',
-                                {'name': name}).get_entity(0, 0)
+        try:
+            return self._cw.execute('Any X WHERE X is CWGroup, X name %(name)s',
+                                    {'name': name}).get_entity(0, 0)
+        except IndexError:
+            self.error('group %r referenced by source configuration %r does not exist'
+                       % (name, self.source.uri))
+            return None
+