merge of '5ca0171c2820bdea8fa61c516f7b07890504fe94'
and 'ae600dde90a09517ff2cad4629bd94dc68652e03' Monotone-Parent: 5ca0171c2820bdea8fa61c516f7b07890504fe94 Monotone-Parent: ae600dde90a09517ff2cad4629bd94dc68652e03 Monotone-Revision: f515f427a2758c70b0acbdb399f62573b5979407 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-10-23T21:20:45 Monotone-Branch: ca.inverse.sogomaint-2.0.2
commit
e54807ff39
64
ChangeLog
64
ChangeLog
|
@ -1,3 +1,17 @@
|
|||
2009-10-23 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/Contacts/SOGoContactSourceFolder.m
|
||||
(-initWithName:andDisplayName:inContainer:): use the source name
|
||||
when the displayname is nil.
|
||||
|
||||
* SoObjects/SOGo/SOGoUserManager.m (_registerSource:): added
|
||||
sanity checks and warnings to the user.
|
||||
|
||||
2009-10-23 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoUserFolder.m (-subFoldersFromFolder:)
|
||||
Addded a check to NOT return web calendars in this query.
|
||||
|
||||
2009-10-23 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* UI/MailerUI/UIxMailMainFrame.m (-formattedMailtoString:): fixed
|
||||
|
@ -2300,7 +2314,7 @@
|
|||
2009-03-24 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoUser.m ([SOGoUser -invalidateLanguage]):
|
||||
new method to invalidate the language ivar.
|
||||
new method to invalidate the language ivar.
|
||||
|
||||
* UI/MainUI/SOGoRootPage.m ([SOGoRootPage -connectAction]): must
|
||||
invalidate user's language ivar when it changes.
|
||||
|
@ -2453,10 +2467,10 @@
|
|||
|
||||
* UI/MainUI/SOGoRootPage.m ([SOGoRootPage -version]): new method
|
||||
that returns the application version.
|
||||
|
||||
|
||||
* SOPE/NGCards/iCalDateTime.m ([iCalDateTime -dateTime]): when not
|
||||
defined, the timezone is now guessed from the date of the current object.
|
||||
|
||||
|
||||
2009-03-18 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* Updated the documentation for the SOGo
|
||||
|
@ -2534,7 +2548,7 @@
|
|||
* UI/Scheduler/UIxCalListingActions.m ([UIxCalListingActions
|
||||
-_fixDates:]): moved corrections for daylight saving time in this
|
||||
new method.
|
||||
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentFolder.m
|
||||
([SOGoAppointmentFolder
|
||||
-fixupCycleRecord:_recordcycleRange:_rfirstInstanceCalendarDateRange:_firforViewRange:_viewRange]):
|
||||
|
@ -2876,7 +2890,7 @@
|
|||
this new method.
|
||||
|
||||
2009-01-06 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
|
||||
* SoObjects/Appointments/SOGoCalendarComponent.m
|
||||
([SOGoCalendarComponent -_filterComponent:]):
|
||||
We now set the proper component summary just like
|
||||
|
@ -3026,7 +3040,7 @@
|
|||
at once.
|
||||
|
||||
2008-12-14 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentFolder.m
|
||||
([SOGoAppointmentFolder -_buildStripFieldsFromFields:]):
|
||||
Don't strip the c_isopaque for the DAndTViewer role.
|
||||
|
@ -3100,7 +3114,7 @@
|
|||
([UIxMailPartICalActions -_setupChosenEventAndEventObject:]):
|
||||
fixed comparison of the calendar and email event when dealing with
|
||||
an occurence of a repeating event.
|
||||
([UIxMailPartICalActions -_updateAttendee:ownerUser:forEventUID:withRecurrenceId:forUID:shouldAddSentBy:]):
|
||||
([UIxMailPartICalActions -_updateAttendee:ownerUser:forEventUID:withRecurrenceId:forUID:shouldAddSentBy:]):
|
||||
fixed handling of status update for one occurence of a repeating event.
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentObject.m
|
||||
|
@ -3155,7 +3169,7 @@
|
|||
* We no longer show the previous/new location
|
||||
if it's empty in the invitation update templates.
|
||||
|
||||
2008-11-26 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
2008-11-26 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoGCSFolder.m
|
||||
We correctly wrap ACL additions around a
|
||||
|
@ -3271,7 +3285,7 @@
|
|||
the SENT-BY into account.
|
||||
|
||||
2008-11-11 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
|
||||
* Fixed a couple of issues in the new pref caching
|
||||
subsystem.
|
||||
* Cleaned up the caching code and activated
|
||||
|
@ -3330,7 +3344,7 @@
|
|||
* UI/Contacts/UIxContactFoldersView.m ([WOActionResults
|
||||
allContactSearchAction]): returned array is now properly
|
||||
initialized if no result is found.
|
||||
|
||||
|
||||
2008-10-15 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* UI/MailerUI/UIxMailListView.m ([UIxMailListView
|
||||
|
@ -3582,8 +3596,8 @@
|
|||
2008-09-08 Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/LDAPSource.m ([LDAPSource
|
||||
-checkLogin:loginToCheckandPassword:passwordToCheck])
|
||||
([LDAPSource -allEntryIDs])
|
||||
-checkLogin:loginToCheckandPassword:passwordToCheck])
|
||||
([LDAPSource -allEntryIDs])
|
||||
([LDAPSource -fetchContactsMatching:match])
|
||||
([LDAPSource -lookupContactEntry:entryID])
|
||||
([LDAPSource -lookupContactEntryWithUIDorEmail:uid]): catch any
|
||||
|
@ -3702,7 +3716,7 @@
|
|||
found, we try "body"->"parts".
|
||||
|
||||
2008-08-26 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
|
||||
* UI/MailerUI/UIxMailMainFrame.m ([composeAction]): build the
|
||||
contact's fullname from its card's attribute "n" if "fn" is
|
||||
not defined.
|
||||
|
@ -3822,7 +3836,7 @@
|
|||
UI/WebServerResources/tbtv_leaf_corner_17x17.gif
|
||||
UI/WebServerResources/tbtv_sent_17x17.gif
|
||||
UI/WebServerResources/tbtv_trash_17x17.gif
|
||||
|
||||
|
||||
2008-08-20 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* UI/PreferencesUI/UIxAdditionalPreferences.[hm]: new template
|
||||
|
@ -5128,7 +5142,7 @@
|
|||
per-connection cache mechanism.
|
||||
|
||||
2008-01-16 Ludovic Marcotte <ludovic@inverse.ca>
|
||||
|
||||
|
||||
* Minor adjustments / bug fixes to previous commit.
|
||||
|
||||
2008-01-14 Ludovic Marcotte <ludovic@inverse.ca>
|
||||
|
@ -5152,7 +5166,7 @@
|
|||
comma-separated list of email addresses.
|
||||
|
||||
2007-12-21 Ludovic Marcotte <ludovic@inverse.ca>
|
||||
|
||||
|
||||
* UI/Contacts/UIxContactView.m
|
||||
Modified -secondaryEmail so that we always get
|
||||
the "last" email address in case no preferred
|
||||
|
@ -5209,7 +5223,7 @@
|
|||
encoded by SOPE.
|
||||
|
||||
* SoObjects/Mailer/SOGoDraftObject.m
|
||||
Minor cleanups.
|
||||
Minor cleanups.
|
||||
|
||||
2007-12-13 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
|
@ -5281,7 +5295,7 @@
|
|||
* UI/MailPartViewers/UIxMailRenderingContext.{h,m}
|
||||
Removed template caching which added very little
|
||||
and created re-entrant issues.
|
||||
|
||||
|
||||
* UI/MailPartViewers/UIxMailPartHTMLViewer.m
|
||||
Added a hack (and stated so in the source file)
|
||||
to avoid what seems to be a bug in libxml.
|
||||
|
@ -5626,9 +5640,9 @@
|
|||
* SoObjects/Mailer/SOGoDraftObject.m
|
||||
Modified _fillInReplyAddresses:replyToAll:envelope:
|
||||
so that if there's no recipient, we add at least
|
||||
ourself to the list.
|
||||
ourself to the list.
|
||||
Fixed a mem leak in the same method.
|
||||
|
||||
|
||||
2007-11-22 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* UI/MailPartViewers/UIxMailRenderingContext.m
|
||||
|
@ -6608,12 +6622,12 @@
|
|||
* UI/WebServerResources/MailerUI.js
|
||||
We check if at least one message is selected
|
||||
before performing a Reply/Reply All/Forward
|
||||
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentFolder.m
|
||||
and others - implemented support for recurring
|
||||
events (with some known limitations right now,
|
||||
all soon to be fixed).
|
||||
|
||||
|
||||
2007-10-04 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* Main/SOGo.m ([SOGo -isUserName:_keyinContext:_ctx]): removed
|
||||
|
@ -6782,7 +6796,7 @@
|
|||
* UI/SOGoUI/UIxComponent.m ([UIxComponent -responseWith204]): new
|
||||
method that returns a WOResponse initialized with the 204 status
|
||||
code.
|
||||
|
||||
|
||||
* UI/MailerUI/UIxMailListView.m ([UIxMailListView -sortedUIDs]):
|
||||
always use a "not deleted" search qualifier along with the user
|
||||
qualifier (if present).
|
||||
|
@ -9088,7 +9102,7 @@
|
|||
* SoObjects/SOGo/NSArray+Utilities.m: added an implementation of
|
||||
makeObjectsPerform:withObject:withObject: for GNUstep
|
||||
compatibility.
|
||||
|
||||
|
||||
* OGoContentStore/GNUmakefile, Protocols/common.make,
|
||||
SoObjects/common.make, UI/common.make: install in
|
||||
GNUSTEP_INSTALLATION_DIR instead of GNUSTEP_USER_DIR.
|
||||
|
@ -10985,5 +10999,5 @@
|
|||
SOGoDefaultMailDomain preference key.
|
||||
|
||||
2006-06-15 ludovic@inverse.ca
|
||||
|
||||
|
||||
* Initial import of SOGo from trunk.
|
||||
|
|
|
@ -124,6 +124,8 @@
|
|||
if ((self = [self initWithName: newName
|
||||
inContainer: newContainer]))
|
||||
{
|
||||
if (![newDisplayName length])
|
||||
newDisplayName = newName;
|
||||
ASSIGN (displayName, newDisplayName);
|
||||
}
|
||||
|
||||
|
|
|
@ -170,7 +170,8 @@ static NSString *LDAPContactInfoAttribute = nil;
|
|||
if (![securityManager validatePermission: SOGoPerm_AccessObject
|
||||
onObject: currentFolder inContext: context]
|
||||
&& [[currentFolder ownerInContext: context]
|
||||
isEqualToString: folderOwner])
|
||||
isEqualToString: folderOwner]
|
||||
&& [NSStringFromClass([currentFolder class]) compare: @"SOGoWebAppointmentFolder"] != NSOrderedSame)
|
||||
{
|
||||
folderName = [NSString stringWithFormat: @"/%@/%@",
|
||||
[parentFolder nameInContainer],
|
||||
|
|
|
@ -104,36 +104,54 @@ static NSLock *lock = nil;
|
|||
NSString *sourceID, *value, *type;
|
||||
NSMutableDictionary *metadata;
|
||||
id<SOGoSource> ldapSource;
|
||||
BOOL isAddressBook;
|
||||
Class c;
|
||||
|
||||
sourceID = [udSource objectForKey: @"id"];
|
||||
type = [udSource objectForKey: @"type"];
|
||||
if ([sourceID length] > 0)
|
||||
{
|
||||
type = [udSource objectForKey: @"type"];
|
||||
|
||||
if (!type || [type caseInsensitiveCompare: @"ldap"] == NSOrderedSame)
|
||||
c = [LDAPSource class];
|
||||
else
|
||||
c = [SQLSource class];
|
||||
if (!type || [type caseInsensitiveCompare: @"ldap"] == NSOrderedSame)
|
||||
c = [LDAPSource class];
|
||||
else
|
||||
c = [SQLSource class];
|
||||
|
||||
ldapSource = [c sourceFromUDSource: udSource];
|
||||
if (sourceID)
|
||||
[_sources setObject: ldapSource forKey: sourceID];
|
||||
ldapSource = [c sourceFromUDSource: udSource];
|
||||
if (sourceID)
|
||||
[_sources setObject: ldapSource forKey: sourceID];
|
||||
else
|
||||
[self errorWithFormat: @"id field missing in an user source,"
|
||||
@" check the SOGoUserSources defaults"];
|
||||
metadata = [NSMutableDictionary dictionary];
|
||||
value = [udSource objectForKey: @"canAuthenticate"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"canAuthenticate"];
|
||||
value = [udSource objectForKey: @"isAddressBook"];
|
||||
if (value)
|
||||
{
|
||||
[metadata setObject: value forKey: @"isAddressBook"];
|
||||
isAddressBook = [value boolValue];
|
||||
}
|
||||
else
|
||||
isAddressBook = NO;
|
||||
value = [udSource objectForKey: @"displayName"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"displayName"];
|
||||
else
|
||||
{
|
||||
if (isAddressBook)
|
||||
[self errorWithFormat: @"addressbook source '%@' has"
|
||||
@" no displayname", sourceID];
|
||||
}
|
||||
value = [udSource objectForKey: @"MailFieldNames"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"MailFieldNames"];
|
||||
[_sourcesMetadata setObject: metadata forKey: sourceID];
|
||||
}
|
||||
else
|
||||
[self errorWithFormat: @"id field missing in an user source,"
|
||||
@" check the SOGoUserSources defaults"];
|
||||
metadata = [NSMutableDictionary dictionary];
|
||||
value = [udSource objectForKey: @"canAuthenticate"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"canAuthenticate"];
|
||||
value = [udSource objectForKey: @"isAddressBook"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"isAddressBook"];
|
||||
value = [udSource objectForKey: @"displayName"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"displayName"];
|
||||
value = [udSource objectForKey: @"MailFieldNames"];
|
||||
if (value)
|
||||
[metadata setObject: value forKey: @"MailFieldNames"];
|
||||
[_sourcesMetadata setObject: metadata forKey: sourceID];
|
||||
[self errorWithFormat: @"attempted to register a contact/user source"
|
||||
@" without id (skipped)"];
|
||||
}
|
||||
|
||||
- (void) _prepareSourcesWithDefaults: (NSUserDefaults *) ud
|
||||
|
|
Loading…
Reference in New Issue