mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-21 03:15:25 +00:00
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:
@@ -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.
@@ -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
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user