From 6112384842791b8d2a1c587d47e1854b6583b844 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 10 May 2007 14:56:47 +0000 Subject: [PATCH] Monotone-Parent: f0287a95426d09a97daa0041135b4177737819c6 Monotone-Revision: 9c8fadcccf096acb0cb35206831736703fec1558 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-05-10T14:56:47 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 12 +++++ SoObjects/SOGo/LDAPSource.m | 100 ++++++++++++++++++++---------------- 2 files changed, 69 insertions(+), 43 deletions(-) diff --git a/ChangeLog b/ChangeLog index ad7219dc2..9c77061b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2007-05-10 Wolfgang Sourdeau + + * SoObjects/SOGo/LDAPSource.m ([LDAPSource + -checkLogin:loginToCheckandPassword:passwordToCheck]): check that + loginToCheck is not empty. + ([LDAPSource -fetchContactsMatching:match]): check that match is + not empty. + ([LDAPSource -lookupContactEntry:entryID]): check that entryID is + not empty. + ([LDAPSource -lookupContactEntryWithUIDorEmail:uid]): check that + uid is not empty. + 2007-05-09 Wolfgang Sourdeau * SoObjects/SOGo/SOGoUser.m ([SOGoUser -primaryEmail]): new name diff --git a/SoObjects/SOGo/LDAPSource.m b/SoObjects/SOGo/LDAPSource.m index 9b9390662..51fdadaf7 100644 --- a/SoObjects/SOGo/LDAPSource.m +++ b/SoObjects/SOGo/LDAPSource.m @@ -215,18 +215,23 @@ static NSArray *commonSearchFields; NSString *userDN; NGLdapConnection *bindConnection; - bindConnection = [[NGLdapConnection alloc] initWithHostName: hostname - port: port]; - userDN = [NSString stringWithFormat: @"%@=%@,%@", - IDField, loginToCheck, baseDN]; - NS_DURING - didBind = [bindConnection bindWithMethod: @"simple" binddn: userDN - credentials: passwordToCheck]; - NS_HANDLER - didBind = NO; - NS_ENDHANDLER + if ([loginToCheck length] > 0) + { + bindConnection = [[NGLdapConnection alloc] initWithHostName: hostname + port: port]; + userDN = [NSString stringWithFormat: @"%@=%@,%@", + IDField, loginToCheck, baseDN]; + NS_DURING + didBind = [bindConnection bindWithMethod: @"simple" binddn: userDN + credentials: passwordToCheck]; + NS_HANDLER + didBind = NO; + NS_ENDHANDLER - [bindConnection release]; + [bindConnection release]; + } + else + didBind = NO; return didBind; } @@ -237,7 +242,7 @@ static NSArray *commonSearchFields; NSString *qs; EOQualifier *qualifier; - if (filter && [filter length] > 0) + if ([filter length] > 0) { if ([filter isEqualToString: @"."]) qs = @"(cn='*')"; @@ -355,19 +360,22 @@ static NSArray *commonSearchFields; contacts = [NSMutableArray array]; - if (!ldapConnection) - [self _initLDAPConnection]; - entries = [ldapConnection deepSearchAtBaseDN: baseDN - qualifier: [self _qualifierForFilter: match] - attributes: [self _searchAttributes]]; - if (entries) + if ([match length] > 0) { - currentEntry = [entries nextObject]; - while (currentEntry) + if (!ldapConnection) + [self _initLDAPConnection]; + entries = [ldapConnection deepSearchAtBaseDN: baseDN + qualifier: [self _qualifierForFilter: match] + attributes: [self _searchAttributes]]; + if (entries) { - [contacts addObject: - [self _convertLDAPEntryToContact: currentEntry]]; currentEntry = [entries nextObject]; + while (currentEntry) + { + [contacts addObject: + [self _convertLDAPEntryToContact: currentEntry]]; + currentEntry = [entries nextObject]; + } } } @@ -379,16 +387,19 @@ static NSArray *commonSearchFields; NSDictionary *contactEntry; NGLdapEntry *ldapEntry; - if (!ldapConnection) - [self _initLDAPConnection]; - ldapEntry - = [ldapConnection entryAtDN: [NSString stringWithFormat: @"%@=%@,%@", - IDField, entryID, baseDN] - attributes: [self _searchAttributes]]; - if (ldapEntry) - contactEntry = [self _convertLDAPEntryToContact: ldapEntry]; - else - contactEntry = nil; + contactEntry = nil; + + if ([entryID length] > 0) + { + if (!ldapConnection) + [self _initLDAPConnection]; + ldapEntry + = [ldapConnection entryAtDN: [NSString stringWithFormat: @"%@=%@,%@", + IDField, entryID, baseDN] + attributes: [self _searchAttributes]]; + if (ldapEntry) + contactEntry = [self _convertLDAPEntryToContact: ldapEntry]; + } return contactEntry; } @@ -400,17 +411,20 @@ static NSArray *commonSearchFields; NSEnumerator *entries; EOQualifier *qualifier; - if (!ldapConnection) - [self _initLDAPConnection]; - qualifier = [self _qualifierForUIDFilter: uid]; - entries = [ldapConnection deepSearchAtBaseDN: baseDN - qualifier: qualifier - attributes: [self _searchAttributes]]; - ldapEntry = [entries nextObject]; - if (ldapEntry) - contactEntry = [self _convertLDAPEntryToContact: ldapEntry]; - else - contactEntry = nil; + contactEntry = nil; + + if ([uid length] > 0) + { + if (!ldapConnection) + [self _initLDAPConnection]; + qualifier = [self _qualifierForUIDFilter: uid]; + entries = [ldapConnection deepSearchAtBaseDN: baseDN + qualifier: qualifier + attributes: [self _searchAttributes]]; + ldapEntry = [entries nextObject]; + if (ldapEntry) + contactEntry = [self _convertLDAPEntryToContact: ldapEntry]; + } return contactEntry; }