mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-06 08:55:08 +00:00
Added the ability to read the SOGo configuration from a property list file in /etc/SOGo/.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
/* SOGoSystemDefaults.m - this file is part of SOGo
|
/* SOGoSystemDefaults.m - this file is part of SOGo
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009-2011 Inverse inc.
|
* Copyright (C) 2009-2011 Inverse inc.
|
||||||
|
* Copyright (C) 2012 Jeroen Dekkers <jeroen@dekkers.ch>
|
||||||
*
|
*
|
||||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
* Francis Lachapelle <flachapelle@inverse.ca>
|
* Francis Lachapelle <flachapelle@inverse.ca>
|
||||||
@@ -95,27 +96,65 @@ BootstrapNSUserDefaults ()
|
|||||||
+ (void) prepareUserDefaults
|
+ (void) prepareUserDefaults
|
||||||
{
|
{
|
||||||
NSString *redirectURL;
|
NSString *redirectURL;
|
||||||
NSDictionary *domain;
|
|
||||||
NSUserDefaults *ud;
|
NSUserDefaults *ud;
|
||||||
SOGoStartupLogger *logger;
|
SOGoStartupLogger *logger;
|
||||||
|
|
||||||
logger = [SOGoStartupLogger sharedLogger];
|
logger = [SOGoStartupLogger sharedLogger];
|
||||||
|
|
||||||
ud = [NSUserDefaults standardUserDefaults];
|
ud = [NSUserDefaults standardUserDefaults];
|
||||||
domain = [ud persistentDomainForName: @"sogod"];
|
if ([[NSFileManager defaultManager] fileExistsAtPath: @"/etc/sogo/sogo.conf"])
|
||||||
if (![domain count])
|
|
||||||
{
|
{
|
||||||
domain = [ud persistentDomainForName: @"sogod-0.9"];
|
NSMutableDictionary *domain;
|
||||||
if ([domain count])
|
|
||||||
|
domain = [[NSMutableDictionary alloc] initWithContentsOfFile: @"/etc/sogo/sogo.conf"];
|
||||||
|
if (domain)
|
||||||
{
|
{
|
||||||
[logger logWithFormat: @"migrating user defaults from sogod-0.9"];
|
if ([[NSFileManager defaultManager] fileExistsAtPath: @"/etc/sogo/debconf.conf"])
|
||||||
[ud setPersistentDomain: domain forName: @"sogod"];
|
{
|
||||||
[ud removePersistentDomainForName: @"sogod-0.9"];
|
NSMutableDictionary *dbconfig;
|
||||||
[ud synchronize];
|
|
||||||
|
dbconfig = [[NSMutableDictionary alloc] initWithContentsOfFile: @"/etc/sogo/debconf.conf"];
|
||||||
|
if (dbconfig)
|
||||||
|
{
|
||||||
|
[domain addEntriesFromDictionary: dbconfig];
|
||||||
|
[dbconfig autorelease];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[logger warnWithFormat: @"Can't deserialize /etc/sogo/debconf.conf, exiting."];
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[ud removePersistentDomainForName: @"sogod"];
|
||||||
|
[ud setVolatileDomain: domain forName: @"sogod"];
|
||||||
|
[domain autorelease];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
[logger warnWithFormat: @"No configuration found."
|
{
|
||||||
@" SOGo will not work properly."];
|
[logger errorWithFormat: @"Can't deserialize /etc/sogo/sogo.conf, exiting."];
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NSDictionary *domain;
|
||||||
|
domain = [ud persistentDomainForName: @"sogod"];
|
||||||
|
if (![domain count])
|
||||||
|
{
|
||||||
|
domain = [ud persistentDomainForName: @"sogod-0.9"];
|
||||||
|
if ([domain count])
|
||||||
|
{
|
||||||
|
[logger logWithFormat: @"migrating user defaults from sogod-0.9"];
|
||||||
|
[ud setPersistentDomain: domain forName: @"sogod"];
|
||||||
|
[ud removePersistentDomainForName: @"sogod-0.9"];
|
||||||
|
[ud synchronize];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
[logger warnWithFormat: @"No configuration found, exiting."];
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[self injectSOGoDefaults: ud];
|
[self injectSOGoDefaults: ud];
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -221,8 +221,14 @@ static void
|
|||||||
setupUserDefaults (NSUserDefaults *ud)
|
setupUserDefaults (NSUserDefaults *ud)
|
||||||
{
|
{
|
||||||
NSMutableDictionary *defaultsOverrides;
|
NSMutableDictionary *defaultsOverrides;
|
||||||
|
NSDictionary *domain;
|
||||||
|
|
||||||
[ud registerDefaults: [ud persistentDomainForName: @"sogod"]];
|
domain = [ud persistentDomainForName: @"sogod"];
|
||||||
|
if (![domain count])
|
||||||
|
{
|
||||||
|
domain = [ud volatileDomainForName: @"sogod"];
|
||||||
|
}
|
||||||
|
[ud registerDefaults: domain];
|
||||||
defaultsOverrides = [NSMutableDictionary new];
|
defaultsOverrides = [NSMutableDictionary new];
|
||||||
[defaultsOverrides setObject: [NSNumber numberWithInt: 0]
|
[defaultsOverrides setObject: [NSNumber numberWithInt: 0]
|
||||||
forKey: @"SOGoLDAPQueryLimit"];
|
forKey: @"SOGoLDAPQueryLimit"];
|
||||||
|
|||||||
Reference in New Issue
Block a user