mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-08-11 09:53:19 +00:00
See ChangeLog
Monotone-Parent: ea7589320f5747a3bd1bbec33e1bd8776e4041db Monotone-Revision: cc4b29880c63c661301ca909ec3695f67b0775dd Monotone-Author: ludovic@Sophos.ca Monotone-Date: 2009-04-21T15:20:52 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,374 +0,0 @@
|
||||
2005-08-01 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* added FHS installation (v0.9.70)
|
||||
|
||||
* SOGoObject.m: added class security declarations (previously in
|
||||
product.plist of MainUI) (v0.9.69)
|
||||
|
||||
2005-07-21 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoUser.m: added a method to fetch share/emitter address pairs from
|
||||
the AgenorUserManager (v0.9.68)
|
||||
|
||||
* AgenorUserManager.m: rewrote to use NSMutableDictionary instead of
|
||||
SOGoLRUCache. Flush caches every hour (configurable using
|
||||
'AgenorCacheCheckInterval' default). Added method to retrieve the
|
||||
shares and the emitter emails in one step. (v0.9.67)
|
||||
|
||||
2005-07-20 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* v0.9.66
|
||||
|
||||
* SOGoContentObject.m: properly quote etag
|
||||
|
||||
* SOGoObject.m: changed to check etag when the content is accessed in
|
||||
WebDAV mode and return a 304 if the tag stayed the same.
|
||||
Do not strip quotes from etags in if-*match headers.
|
||||
Properly implement if-none-match for GET requests.
|
||||
|
||||
* SOGoContentObject.m: moved generic etag checking to SOGoObject (to
|
||||
share implementation with Mailer) (v0.9.65)
|
||||
|
||||
2005-07-19 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* AgenorUserManager.m: properly implemented internet/intranet vacation
|
||||
message status detection (v0.9.64)
|
||||
|
||||
2005-07-14 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* v0.9.63
|
||||
|
||||
* SOGoAppointment.[hm]: new API to cancel appointments, NSCopying
|
||||
support
|
||||
|
||||
2005-07-15 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* v0.9.62
|
||||
|
||||
* SOGoGroupFolder.m, SOGoUser.m: fixed a gcc 4.0 warning
|
||||
|
||||
* GNUmakefile.preamble: properly use SYSTEM_LIB_DIR
|
||||
|
||||
* v0.9.61
|
||||
|
||||
* SOGoContentObject.m: fixed a Cocoa warning
|
||||
|
||||
* GNUmakefile.preamble: added proper linking flags for OSX
|
||||
|
||||
2005-07-14 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* v0.9.60
|
||||
|
||||
* SOGoAppointment.[hm]: added 'method' and 'userComment' accessors
|
||||
|
||||
* SOGoAppointmentICalRenderer.m: properly render 'method' of
|
||||
appointment if it's set - otherwise assume 'REQUEST'
|
||||
|
||||
2005-07-14 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoUser.m: added -homeFolderInContext: and
|
||||
-schedulingCalendarInContext: methods (v0.9.59)
|
||||
|
||||
* moved in SOGoUser and SOGoAuthenticator from Main (v0.9.58)
|
||||
|
||||
2005-07-14 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* AgenorUserManager.[hm]: added accessors and cache for the
|
||||
'mineqMelReponse' flag. Please note that the implementation isn't
|
||||
fully fleshed out because the technical specification isn't correct.
|
||||
(v0.9.57)
|
||||
|
||||
* AgenorUserManager.[hm]: added accessors and cache for the
|
||||
'mineqOgoAccesInternet' flag (v0.9.56)
|
||||
|
||||
2005-07-14 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoContentObject.m: added empty davCopy/davMove methods (v0.9.55)
|
||||
|
||||
* v0.9.54
|
||||
|
||||
* SOGoContentObject.m: added support for special 'new' key (server will
|
||||
assign a name and add the new location in a special response header)
|
||||
|
||||
* SOGoFolder.m: added +globallyUniqueObjectId (previously the method
|
||||
was duplicated in each subclass)
|
||||
|
||||
* SOGoContentObject.m: added transactionally save etag-checks in PUT
|
||||
(use the etag value as the baseVersion in the content store)
|
||||
(v0.9.53)
|
||||
|
||||
2005-07-13 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* v0.9.52
|
||||
|
||||
* SOGoObject.m: properly add etag during a GET (if available)
|
||||
|
||||
* SOGoContentObject.m: generate etag from content object version, added
|
||||
methods to check request preconditions, check preconditions prior
|
||||
running a PUT, added new etag after running a PUT
|
||||
|
||||
* SOGoObject.m, SOGoFolder.m: added +version methods to detect fragile
|
||||
base class issues (v0.9.51)
|
||||
|
||||
* SOGoFolder.m: changed to use plain column names (v0.9.50)
|
||||
|
||||
2005-07-12 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* SOGoUserFolder.m: forbid access (403) to SOGoGroupFolders if access
|
||||
is not from the Intranet (v0.9.49)
|
||||
|
||||
2005-07-12 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* AgenorUserDefaults.m: added automagic profile row creation (v0.9.48)
|
||||
|
||||
* AgenorUserDefaults.m: implemented saving of changed profiles
|
||||
(v0.9.47)
|
||||
|
||||
2005-07-12 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* AgenorUserManager.[hm]: new API for extracting UIDs from iCalPersons
|
||||
(v0.9.46)
|
||||
|
||||
2005-07-12 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* v0.9.45
|
||||
|
||||
* AgenorUserDefaults.m: properly fetch profile contents
|
||||
|
||||
* agenor_defaults.m: read operation can now return all defined keys
|
||||
|
||||
* v0.9.44
|
||||
|
||||
* AgenorUserDefaults.m: added typed value accessors and proper
|
||||
initializers
|
||||
|
||||
* AgenorUserManager.m: added 'AgenorProfileURL' default to configure
|
||||
the database location of the user profile table
|
||||
|
||||
* finished agenor_defaults tool
|
||||
|
||||
2005-07-12 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* v0.9.43
|
||||
|
||||
* added agenor_defaults tool to test defaults functionality
|
||||
|
||||
* AgenorUserManager.[hm]: added -getUserDefaultsForUID: method to
|
||||
retrieve the profile of a user (incomplete)
|
||||
|
||||
* added AgenorUserDefaults class (incomplete) as a wrapper for the
|
||||
profile data of Agenor users
|
||||
|
||||
2005-07-08 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* v0.9.42
|
||||
|
||||
* added agenor_emails4uid tool to check whether the
|
||||
uid=>allowed-from-mails discovery in AgenorUserManager works
|
||||
|
||||
* AgenorUserManager.m: added -getSharedMailboxEMailsForUID: method to
|
||||
discover the shared emails the user is allowed to post from,
|
||||
added caching of shared emails and Cyrus-logins
|
||||
|
||||
* WOContext+Agenor.m: use SOGoInternetDetectQualifier for detecting
|
||||
Internet access level (v0.9.41)
|
||||
|
||||
2005-07-08 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* WOContext+Agenor.[hm]: new category for discovering if the current
|
||||
context is via access from the intranet. (v0.9.40)
|
||||
|
||||
2005-07-07 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* added agenor_shares4uid tool to check whether the uid=>shared mailbox
|
||||
discovery in AgenorUserManager works
|
||||
|
||||
* AgenorUserManager.m: fixed a major string scanning bug in
|
||||
_serverCandidatesForMineqMelRoutage: method,
|
||||
added -getSharedMailboxAccountStringsForUID: method to discover
|
||||
shared IMAP4 accounts (v0.9.39)
|
||||
|
||||
2005-07-07 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* AgenorUserManager.m: added a simple -description method (v0.9.38)
|
||||
|
||||
* added agenor_email2uid.m tool to check whether the email=>uid mapping
|
||||
in AgenorUserManager works
|
||||
|
||||
2005-07-06 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* v0.9.37
|
||||
|
||||
* SOGoUserFolder.m: added 'freebusy.ifb' as an object to the
|
||||
collection for proper display via DAV.
|
||||
|
||||
* SOGoAppointmentICalRenderer.m: fixed header inclusion
|
||||
|
||||
* AgenorUserManager.[hm]: added proposed future API for discovering
|
||||
URLs for free/busy information (implementation currently returns
|
||||
nil)
|
||||
|
||||
2005-07-05 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* SOGoAppointment.m: fixed a wrong -release (v0.9.36)
|
||||
|
||||
2005-03-25 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoObject.m: fixed DELETEAction to return a boolean if the delete
|
||||
was successful (required by SoObjectRequestHandler) (v0.9.35)
|
||||
|
||||
2005-03-20 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* changed to use GDLContentStore (v0.9.34)
|
||||
|
||||
2005-03-03 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* SOGoGroupFolder.m: switched logging to NGLogging (v0.9.33)
|
||||
|
||||
2005-03-02 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* NSObject+AptComparison.[hm]: new comparison method. This is used
|
||||
in SOGoAppointmentFolder currently. (v0.9.32)
|
||||
|
||||
2005-02-20 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* AgenorUserManager.m: refactoring of the LDAP fetch code, added the
|
||||
'SOGoFallbackIMAP4Server' default to configure the IMAP4 server when
|
||||
LDAP is disabled (v0.9.31)
|
||||
|
||||
2005-02-17 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* moved in code from libSOGoLogic (unnecessarily a separate library)
|
||||
(v0.9.30)
|
||||
|
||||
2005-02-10 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoObject.m: fixed a warning on MacOSX (v0.9.29)
|
||||
|
||||
2005-02-07 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoObject.h: added prototype for GETAction (v0.9.28)
|
||||
|
||||
2005-02-06 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* added -outlookMessageClass / -outlookFolderClass (v0.9.27)
|
||||
|
||||
2004-10-19 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoFolder: added method -fetchContentStringsAndNamesOfAllObjects
|
||||
which fetches the contents of all folders objects (avoid to use this
|
||||
high overhead method!). Required for iCalendar file generation.
|
||||
(v0.9.26)
|
||||
|
||||
2004-10-08 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoUserFolder.m: enhanced object lookup so that when a Calendar
|
||||
is opened with an extensions (eg "Calendar.ics") (v0.9.25)
|
||||
|
||||
* SOGoFolder.m: added facility to define default extensions (v0.9.24)
|
||||
|
||||
* SOGoObject.m: fixed not implemented return status (501, not 502)
|
||||
(v0.9.23)
|
||||
|
||||
* SOGoUserFolder.m: do not try to fetch file names in this folder
|
||||
(v0.9.22)
|
||||
|
||||
* v0.9.21
|
||||
|
||||
* SOGoContentObject.m: added PUTAction:
|
||||
|
||||
* SOGoObject.m: implemented special WebDAV support in GETAction:
|
||||
|
||||
* SOGoFolder.m: added -toOneRelationshipKeys method (enables listing of
|
||||
contained objects in WebDAV), added container name to logging prefix,
|
||||
explicitly mark as WebDAV collection
|
||||
|
||||
* SOGoContentObject.m: mark as WebDAV non-collection
|
||||
|
||||
2004-10-07 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoUserFolder.m: added toManyRelationshipKeys, marked as WebDAV
|
||||
collection (v0.9.20)
|
||||
|
||||
2004-09-29 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoObject.m: added -fetchSubfolders method to resolve all
|
||||
toManyRelationshipKeys to SOPE objects (v0.9.19)
|
||||
|
||||
2004-09-20 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* SOGoObject.m: added a default GET method which redirects to
|
||||
url + "/view" (v0.9.18)
|
||||
|
||||
* SOGoObject.m(-description): added name of container (v0.9.17)
|
||||
|
||||
2004-09-08 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* SOGoGroupFolder.m: separate -resetFolderCaches method from -sleep
|
||||
(v0.9.16)
|
||||
|
||||
2004-09-08 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* SOGoUserFolder.m: map "Mail" key to SOGoMailAccounts object (v0.9.15)
|
||||
|
||||
2004-09-01 Marcus Mueller <znek@mulle-kybernetik.com>
|
||||
|
||||
* v0.9.14
|
||||
|
||||
* GNUmakefile.preamble: fixed for gsmake 1.9.2 build
|
||||
|
||||
* GNUmakefile: include ../../Version also
|
||||
|
||||
2004-08-26 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* SOGoUserFolder.m: added ability to create Contacts folder (v0.9.13)
|
||||
|
||||
2004-08-24 Maxime Wacker <mwacker@linagora.com>
|
||||
|
||||
* GNUmakefile.preamble: fixes for the build process (v0.9.12)
|
||||
|
||||
2004-08-16 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* SOGoCustomGroupFolder.m: added -initWithUIDs:inContainer: for using
|
||||
the groups folder for internal group fetches (v0.9.11)
|
||||
|
||||
* SOGoContentObject.m: updated multi-save things (which belong into the
|
||||
SOGoAppointmentObject class), implement -sleep to release the content
|
||||
(v0.9.10)
|
||||
|
||||
2004-08-15 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* SOGoContentObject.m: implement first version of -delete (v0.9.9)
|
||||
|
||||
* SOGoObject.[hm], SOGoUserFolder.[hm]: implemented SOPE
|
||||
-ownerInContext: (v0.9.8)
|
||||
|
||||
2004-08-14 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* v0.9.7
|
||||
|
||||
* SOGoGroupFolder.m: renamed -reset method to -sleep (called by SOPE)
|
||||
|
||||
* SOGoObject.m: added SOPE -sleep method (resets container and can be
|
||||
called by subclasses)
|
||||
|
||||
* SOGoGroupFolder.m: made the folder found note log a debug log
|
||||
|
||||
2004-08-11 Helge Hess <helge.hess@skyrix.com>
|
||||
|
||||
* v0.9.6
|
||||
|
||||
* SOGoUserFolder.m: added "Groups" folder name and lookup
|
||||
|
||||
* added: SOGoGroupsFolder, SOGoGroupFolder, SOGoCustomGroupFolder
|
||||
|
||||
2004-07-02 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoObject.m: added -delete method (but not yet implemented)
|
||||
|
||||
2004-06-30 Helge Hess <helge.hess@opengroupware.org>
|
||||
|
||||
* SOGoContentObject.m: added -contentAsString method
|
||||
|
||||
* created ChangeLog
|
||||
|
||||
@@ -351,7 +351,8 @@ static NSLock *lock;
|
||||
|
||||
defaults = [[[SOGoUserDefaults alloc] initWithTableURL: url
|
||||
uid: theLogin
|
||||
fieldName: [NSString stringWithFormat: @"c_%@", theKey]]
|
||||
fieldName: [NSString stringWithFormat: @"c_%@", theKey]
|
||||
shouldPropagate: YES]
|
||||
autorelease];
|
||||
[defaults setValues: theValues];
|
||||
[self setDefaults: defaults forLogin: theLogin key: theKey];
|
||||
|
||||
@@ -694,13 +694,18 @@ static NSArray *childRecordFields = nil;
|
||||
}
|
||||
else
|
||||
{
|
||||
// The current user is a superuser...
|
||||
SOGoUser *subscriptionUser;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < [delegatedUsers count]; i++)
|
||||
{
|
||||
// We trust the passed user ID here as it might generate tons or LDAP
|
||||
// call but more importantly, cache propagation calls that will create
|
||||
// contention on GDNC.
|
||||
subscriptionUser = [SOGoUser userWithLogin: [delegatedUsers objectAtIndex: i]
|
||||
roles: nil];
|
||||
roles: nil
|
||||
trust: YES];
|
||||
|
||||
[self _subscribeUser: subscriptionUser
|
||||
reallyDo: reallyDo
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SOGoParentFolder.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006, 2007 Inverse inc.
|
||||
* Copyright (C) 2006-2009 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SOGoParentFolder.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006, 2007 Inverse inc.
|
||||
* Copyright (C) 2006-2009 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
|
||||
@@ -69,6 +69,7 @@ extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
NSString *language;
|
||||
NSArray *allEmails;
|
||||
NSString *cn;
|
||||
BOOL propagateCache;
|
||||
}
|
||||
|
||||
+ (NSString *) language;
|
||||
@@ -76,6 +77,14 @@ extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
+ (SOGoUser *) userWithLogin: (NSString *) login
|
||||
roles: (NSArray *) roles;
|
||||
|
||||
+ (SOGoUser *) userWithLogin: (NSString *) login
|
||||
roles: (NSArray *) roles
|
||||
trust: (BOOL) b;
|
||||
|
||||
- (id) initWithLogin: (NSString *) newLogin
|
||||
roles: (NSArray *) newRoles
|
||||
trust: (BOOL) b;
|
||||
|
||||
- (void) setPrimaryRoles: (NSArray *) newRoles;
|
||||
|
||||
- (void) setCurrentPassword: (NSString *) newPassword;
|
||||
|
||||
+42
-18
@@ -223,6 +223,13 @@ _timeValue (NSString *key)
|
||||
|
||||
+ (SOGoUser *) userWithLogin: (NSString *) newLogin
|
||||
roles: (NSArray *) newRoles
|
||||
{
|
||||
return [self userWithLogin: newLogin roles: newRoles trust: NO];
|
||||
}
|
||||
|
||||
+ (SOGoUser *) userWithLogin: (NSString *) newLogin
|
||||
roles: (NSArray *) newRoles
|
||||
trust: (BOOL) b
|
||||
{
|
||||
SOGoCache *cache;
|
||||
SOGoUser *user;
|
||||
@@ -231,7 +238,7 @@ _timeValue (NSString *key)
|
||||
user = [cache userNamed: newLogin];
|
||||
if (!user)
|
||||
{
|
||||
user = [[self alloc] initWithLogin: newLogin roles: newRoles];
|
||||
user = [[self alloc] initWithLogin: newLogin roles: newRoles trust: b];
|
||||
if (user)
|
||||
{
|
||||
[user autorelease];
|
||||
@@ -245,18 +252,31 @@ _timeValue (NSString *key)
|
||||
|
||||
- (id) initWithLogin: (NSString *) newLogin
|
||||
roles: (NSArray *) newRoles
|
||||
trust: (BOOL) b
|
||||
{
|
||||
LDAPUserManager *um;
|
||||
NSString *realUID;
|
||||
|
||||
// We propagate the cache if we do NOT trust the login names.
|
||||
// When trusting login names, we 'assume' we're dealing with a
|
||||
// super user doing kungfu with the system. We definitively don't
|
||||
// want to propagate the cache to other sogod instances when
|
||||
// dealing with massive number of ops.
|
||||
propagateCache = !b;
|
||||
|
||||
if ([newLogin isEqualToString: @"anonymous"]
|
||||
|| [newLogin isEqualToString: @"freebusy"])
|
||||
realUID = newLogin;
|
||||
else
|
||||
{
|
||||
um = [LDAPUserManager sharedUserManager];
|
||||
realUID = [[um contactInfosForUserWithUIDorEmail: newLogin]
|
||||
objectForKey: @"c_uid"];
|
||||
if (b)
|
||||
realUID = newLogin;
|
||||
else
|
||||
{
|
||||
um = [LDAPUserManager sharedUserManager];
|
||||
realUID = [[um contactInfosForUserWithUIDorEmail: newLogin]
|
||||
objectForKey: @"c_uid"];
|
||||
}
|
||||
}
|
||||
|
||||
if ([realUID length])
|
||||
@@ -431,7 +451,8 @@ _timeValue (NSString *key)
|
||||
|
||||
o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL
|
||||
uid: login
|
||||
fieldName: @"c_defaults"];
|
||||
fieldName: @"c_defaults"
|
||||
shouldPropagate: propagateCache];
|
||||
[o autorelease];
|
||||
|
||||
return o;
|
||||
@@ -443,7 +464,8 @@ _timeValue (NSString *key)
|
||||
|
||||
o = [[SOGoUserDefaults alloc] initWithTableURL: SOGoProfileURL
|
||||
uid: login
|
||||
fieldName: @"c_settings"];
|
||||
fieldName: @"c_settings"
|
||||
shouldPropagate: propagateCache];
|
||||
[o autorelease];
|
||||
|
||||
return o;
|
||||
@@ -491,12 +513,13 @@ _timeValue (NSString *key)
|
||||
|
||||
[[SOGoCache sharedCache] setDefaults: defaults
|
||||
forLogin: login key: @"defaults"];
|
||||
|
||||
[(NSDistributedNotificationCenter *)[NSDistributedNotificationCenter defaultCenter]
|
||||
postNotificationName: @"SOGoUserDefaultsHaveLoaded"
|
||||
object: nil
|
||||
userInfo: d
|
||||
deliverImmediately: YES];
|
||||
|
||||
if (propagateCache)
|
||||
[(NSDistributedNotificationCenter *)[NSDistributedNotificationCenter defaultCenter]
|
||||
postNotificationName: @"SOGoUserDefaultsHaveLoaded"
|
||||
object: nil
|
||||
userInfo: d
|
||||
deliverImmediately: YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -536,12 +559,13 @@ _timeValue (NSString *key)
|
||||
[d setObject: [SOGoProfileURL absoluteString] forKey: @"url"];
|
||||
|
||||
[[SOGoCache sharedCache] setDefaults: settings forLogin: login key: @"settings"];
|
||||
|
||||
[(NSDistributedNotificationCenter *)[NSDistributedNotificationCenter defaultCenter]
|
||||
postNotificationName: @"SOGoUserSettingsHaveLoaded"
|
||||
object: nil
|
||||
userInfo: d
|
||||
deliverImmediately: YES];
|
||||
|
||||
if (propagateCache)
|
||||
[(NSDistributedNotificationCenter *)[NSDistributedNotificationCenter defaultCenter]
|
||||
postNotificationName: @"SOGoUserSettingsHaveLoaded"
|
||||
object: nil
|
||||
userInfo: d
|
||||
deliverImmediately: YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
NSString *fieldName;
|
||||
NSCalendarDate *lastFetch;
|
||||
NSMutableDictionary *values;
|
||||
BOOL propagateCache;
|
||||
|
||||
struct
|
||||
{
|
||||
@@ -56,7 +57,8 @@
|
||||
|
||||
- (id) initWithTableURL: (NSURL *) theURL
|
||||
uid: (NSString *) theUID
|
||||
fieldName: (NSString *) theFieldName;
|
||||
fieldName: (NSString *) theFieldName
|
||||
shouldPropagate: (BOOL) b;
|
||||
|
||||
/* value access */
|
||||
- (void) setValues: (NSDictionary *) theValues;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (C) 2005 SKYRIX Software AG
|
||||
Copyright (C) 2008-2009 Inverse inc.
|
||||
Copyright (C) 2005 SKYRIX Software AG
|
||||
|
||||
This file is part of SOGo.
|
||||
|
||||
@@ -47,6 +47,7 @@ static NSString *uidColumnName = @"c_uid";
|
||||
- (id) initWithTableURL: (NSURL *) theURL
|
||||
uid: (NSString *) theUID
|
||||
fieldName: (NSString *) theFieldName
|
||||
shouldPropagate: (BOOL) b
|
||||
{
|
||||
if ((self = [self init]))
|
||||
{
|
||||
@@ -57,6 +58,7 @@ static NSString *uidColumnName = @"c_uid";
|
||||
url = [theURL copy];
|
||||
uid = [theUID copy];
|
||||
defFlags.ready = YES;
|
||||
propagateCache = b;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -304,13 +306,14 @@ static NSString *uidColumnName = @"c_uid";
|
||||
forLogin: uid
|
||||
key: ([fieldName isEqualToString: @"c_defaults"] ? @"defaults" : @"settings")];
|
||||
|
||||
[(NSDistributedNotificationCenter *)[NSDistributedNotificationCenter defaultCenter]
|
||||
postNotificationName: ([fieldName isEqualToString: @"c_defaults"]
|
||||
? @"SOGoUserDefaultsHaveChanged"
|
||||
: @"SOGoUserSettingsHaveChanged")
|
||||
object: nil
|
||||
userInfo: d
|
||||
deliverImmediately: YES];
|
||||
if (propagateCache)
|
||||
[(NSDistributedNotificationCenter *)[NSDistributedNotificationCenter defaultCenter]
|
||||
postNotificationName: ([fieldName isEqualToString: @"c_defaults"]
|
||||
? @"SOGoUserDefaultsHaveChanged"
|
||||
: @"SOGoUserSettingsHaveChanged")
|
||||
object: nil
|
||||
userInfo: d
|
||||
deliverImmediately: YES];
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
||||
Reference in New Issue
Block a user