diff -r 20bd1cdf86ae -r d537786e52b8 sobjects/ldapparser.py --- 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 +