See ChangeLog

Monotone-Parent: e32cb5a49f7eb94c778c878808a9abcb69576a80
Monotone-Revision: 89b88978ce7a84af4dd6e2e230ede1c3ef700068

Monotone-Author: ludovic@Sophos.ca
Monotone-Date: 2009-03-16T21:13:01
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Ludovic Marcotte
2009-03-16 21:13:01 +00:00
parent a8cd172a6b
commit b65ae175c3
5 changed files with 46 additions and 17 deletions
+8
View File
@@ -1,3 +1,11 @@
2009-03-16 Ludovic Marcotte <lmarcotte@inverse.ca>
* SoObjects/SOGo/LDAPSource.m: We now support
the specification of a filter. Also updated
the installation guide to document this new parameter
* sogo.spec: Modified so that we use our tmpwatch
script from /etc/cron.daily
2009-03-16 Francis Lachapelle <flachapelle@inverse.ca>
* UI/Scheduler/UIxCalListingActions.m ([UIxCalListingActions
Binary file not shown.
+2 -1
View File
@@ -1,6 +1,6 @@
/* LDAPSource.h - this file is part of SOGo
*
* Copyright (C) 2007 Inverse inc.
* Copyright (C) 2007-2009 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*
@@ -36,6 +36,7 @@
NSString *hostname;
unsigned int port;
NSString *password;
NSString *_filter;
NSString *baseDN;
NSString *IDField; /* the first part of a user DN */
+33 -16
View File
@@ -1,6 +1,6 @@
/* LDAPSource.m - this file is part of SOGo
*
* Copyright (C) 2007-2008 Inverse inc.
* Copyright (C) 2007-2009 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*
@@ -165,6 +165,7 @@ static NSLock *lock;
mailFields = [NSArray arrayWithObject: @"mail"];
[mailFields retain];
bindFields = nil;
_filter = nil;
ldapConnection = nil;
searchAttributes = nil;
@@ -184,6 +185,7 @@ static NSLock *lock;
[UIDField release];
[mailFields release];
[bindFields release];
[_filter release];
[ldapConnection release];
[sourceID release];
[modulesConstraints release];
@@ -206,7 +208,8 @@ static NSLock *lock;
UIDField: [udSource objectForKey: @"UIDFieldName"]
mailFields: [udSource objectForKey: @"MailFieldNames"]
andBindFields: [udSource objectForKey: @"bindFields"]];
ASSIGN (modulesConstraints, [udSource objectForKey: @"ModulesConstraints"]);
ASSIGN(modulesConstraints, [udSource objectForKey: @"ModulesConstraints"]);
ASSIGN(_filter, [udSource objectForKey: @"filter"]);
return self;
}
@@ -282,7 +285,11 @@ static NSLock *lock;
fields = [[bindFields componentsSeparatedByString: @","] objectEnumerator];
while ((currentField = [fields nextObject]))
[qs appendFormat: @" OR (%@='%@')", currentField, uid];
[qs deleteCharactersInRange: NSMakeRange (0, 4)];
if (_filter && [_filter length])
[qs appendFormat: @" AND %@", _filter];
[qs deleteCharactersInRange: NSMakeRange(0, 4)];
return [EOQualifier qualifierWithQualifierFormat: qs];
}
@@ -360,25 +367,30 @@ static NSLock *lock;
/* contact management */
- (EOQualifier *) _qualifierForFilter: (NSString *) filter
{
NSString *qs, *mailFormat, *fieldFormat;
NSString *mailFormat, *fieldFormat;
EOQualifier *qualifier;
NSMutableString *qs;
fieldFormat = [NSString stringWithFormat: @"(%%@='%@*')", filter];
mailFormat = [[mailFields stringsWithFormat: fieldFormat]
componentsJoinedByString: @" OR "];
qs = [NSMutableString string];
if ([filter length] > 0)
{
if ([filter isEqualToString: @"."])
qs = @"(cn='*')";
[qs appendFormat: @"(%@='*')", CNField];
else
qs = [NSString stringWithFormat:
@"(cn='%@*')"
@"OR (sn='%@*')"
@"OR (displayName='%@*')"
@"OR %@"
@"OR (telephoneNumber='*%@*')",
filter, filter, filter, mailFormat, filter];
[qs appendFormat: @"(%@='%@*')"
@"OR (sn='%@*')"
@"OR (displayName='%@*')"
@"OR %@"
@"OR (telephoneNumber='*%@*')",
CNField, filter, filter, filter, mailFormat, filter];
if (_filter && [_filter length])
[qs appendFormat: @" AND %@", _filter];
qualifier = [EOQualifier qualifierWithQualifierFormat: qs];
}
else
@@ -389,13 +401,18 @@ static NSLock *lock;
- (EOQualifier *) _qualifierForUIDFilter: (NSString *) uid
{
NSString *qs, *mailFormat, *fieldFormat;
NSString *mailFormat, *fieldFormat;
NSMutableString *qs;
fieldFormat = [NSString stringWithFormat: @"(%%@='%@')", uid];
mailFormat = [[mailFields stringsWithFormat: fieldFormat]
componentsJoinedByString: @" OR "];
qs = [NSString stringWithFormat: (@"(%@='%@') OR %@"),
UIDField, uid, mailFormat];
qs = [NSMutableString string];
[qs appendFormat: (@"(%@='%@') OR %@"), UIDField, uid, mailFormat];
if (_filter && [_filter length])
[qs appendFormat: @" AND %@", _filter];
return [EOQualifier qualifierWithQualifierFormat: qs];
}
+3
View File
@@ -129,12 +129,14 @@ make DESTDIR=${RPM_BUILD_ROOT} \
CC="$cc" LDFLAGS="$ldflags" \
install
mkdir -p ${RPM_BUILD_ROOT}/etc/init.d
mkdir -p ${RPM_BUILD_ROOT}/etc/cron.daily
mkdir -p ${RPM_BUILD_ROOT}/etc/httpd/conf.d
mkdir -p ${RPM_BUILD_ROOT}/usr/sbin
mkdir -p ${RPM_BUILD_ROOT}/var/run/sogo
mkdir -p ${RPM_BUILD_ROOT}/var/log/sogo
mkdir -p ${RPM_BUILD_ROOT}/var/spool/sogo
cp Apache/SOGo.conf ${RPM_BUILD_ROOT}/etc/httpd/conf.d/
cp Scripts/tmpwatch ${RPM_BUILD_ROOT}/etc/cron.daily/sogo-tmpwatch
cp Scripts/sogo-init.d-redhat ${RPM_BUILD_ROOT}/etc/init.d/sogod
cp Scripts/sogod-wrapper ${RPM_BUILD_ROOT}/usr/sbin/sogod
rm -rf ${RPM_BUILD_ROOT}%{prefix}/Tools/test_quick_extract
@@ -148,6 +150,7 @@ rm -fr ${RPM_BUILD_ROOT}
%defattr(-,root,root,-)
/etc/init.d/sogod
/etc/cron.daily/sogo-tmpwatch
/usr/sbin/sogod
/var/run/sogo
/var/log/sogo