Monotone-Parent: 8e0e6424d6b615f0f0bced176a8cacc2ef6cb0dd

Monotone-Revision: e925d76ce1929b1801949335cf3b1290dc53eb6d

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-08-15T20:30:37
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-08-15 20:30:37 +00:00
parent 92824c6327
commit 2268dbc1c9
3 changed files with 148 additions and 24 deletions
+14
View File
@@ -1,5 +1,19 @@
2007-08-15 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoUser.m ([-fullEmail]): removed method.
([-primaryEmail]): removed method.
([SOGoUser -primaryIMAP4AccountString]): removed method.
([SOGoUser -mailAccounts]): new method that returns an array
containing description dictionaries for all the user mail
accounts. Each account also contain the user's identities for that
account.
([SOGoUser -allIdentities]): new utility method that returns all
the user identities on all accounts.
([SOGoUser -primaryIdentity]): new method return the first
identity of the first account.
* SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder -httpURLForAdvisoryToUser:uid]):
* SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount
-isInDraftsFolder]): returns NO.
([-preferredIdentity]): removed method, replaced with -[SOGoUser
+10 -5
View File
@@ -58,6 +58,7 @@ extern NSString *SOGoWeekStartFirstFullWeek;
NSUserDefaults *userSettings;
NSTimeZone *userTimeZone;
SOGoDateFormatter *dateFormatter;
NSMutableArray *mailAccounts;
}
+ (SOGoUser *) userWithLogin: (NSString *) login
@@ -67,11 +68,11 @@ extern NSString *SOGoWeekStartFirstFullWeek;
/* properties */
- (NSString *) fullEmail;
// - (NSString *) fullEmail;
- (NSString *) primaryEmail;
- (NSString *) systemEmail;
- (NSArray *) allEmails;
// - (NSString *) primaryEmail;
// - (NSString *) systemEmail;
// - (NSArray *) allEmails;
- (BOOL) hasEmail: (NSString *) email;
@@ -82,7 +83,7 @@ extern NSString *SOGoWeekStartFirstFullWeek;
/* shares and identities */
- (NSString *) primaryIMAP4AccountString;
// - (NSString *) primaryIMAP4AccountString;
// - (NSString *) primaryIMAP4AccountString;
// - (NSString *) primaryMailServer;
@@ -99,6 +100,10 @@ extern NSString *SOGoWeekStartFirstFullWeek;
- (NSTimeZone *) timeZone;
- (NSTimeZone *) serverTimeZone;
- (NSArray *) mailAccounts;
- (NSArray *) allIdentities;
- (NSDictionary *) primaryIdentity;
/* folders */
- (id) homeFolderInContext: (id) _ctx;
+124 -19
View File
@@ -23,6 +23,7 @@
#import <Foundation/NSNull.h>
#import <Foundation/NSTimeZone.h>
#import <Foundation/NSUserDefaults.h>
#import <Foundation/NSValue.h>
#import <NGObjWeb/WOApplication.h>
#import <NGObjWeb/SoObject.h>
#import <NGExtensions/NSNull+misc.h>
@@ -189,17 +190,25 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
/* properties */
- (NSString *) fullEmail
{
return [[LDAPUserManager sharedUserManager] getFullEmailForUID: login];
}
// - (NSString *) fullEmail
// {
// return [[LDAPUserManager sharedUserManager] getFullEmailForUID: login];
// }
- (NSString *) primaryEmail
// - (NSString *) primaryEmail
// {
// if (!allEmails)
// [self _fetchAllEmails];
// return [allEmails objectAtIndex: 0];
// }
- (NSArray *) allEmails
{
if (!allEmails)
[self _fetchAllEmails];
return [allEmails objectAtIndex: 0];
return allEmails;
}
- (NSString *) systemEmail
@@ -210,14 +219,6 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
return [allEmails lastObject];
}
- (NSArray *) allEmails
{
if (!allEmails)
[self _fetchAllEmails];
return allEmails;
}
- (BOOL) hasEmail: (NSString *) email
{
if (!allEmails)
@@ -234,11 +235,6 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
return cn;
}
- (NSString *) primaryIMAP4AccountString
{
return [NSString stringWithFormat: @"%@@%@", login, fallbackIMAP4Server];
}
// - (NSString *) primaryMailServer
// {
// return [[self userManager] getServerForUID: [self login]];
@@ -347,6 +343,115 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
return serverTimeZone;
}
/* mail */
- (NSArray *) mailAccounts
{
#warning should be implemented with the user defaults interfaces
NSMutableDictionary *mailAccount, *identity;
NSMutableArray *identities;
NSString *name, *fullName;
if (!mailAccounts)
{
mailAccount = [NSMutableDictionary dictionary];
name = [NSString stringWithFormat: @"%@@%@", login, fallbackIMAP4Server];
[mailAccount setObject: login forKey: @"userName"];
[mailAccount setObject: fallbackIMAP4Server forKey: @"serverName"];
[mailAccount setObject: name forKey: @"name"];
identity = [NSMutableDictionary dictionary];
fullName = [self cn];
if (![fullName length])
fullName = login;
[identity setObject: fullName forKey: @"fullName"];
[identity setObject: [self systemEmail] forKey: @"email"];
[identity setObject: [NSNumber numberWithBool: YES] forKey: @"isDefault"];
identities = [NSMutableArray array];
[identities addObject: identity];
[mailAccount setObject: identities forKey: @"identities"];
mailAccounts = [NSMutableArray new];
[mailAccounts addObject: mailAccount];
}
return mailAccounts;
}
/*
@interface SOGoMailIdentity : NSObject
{
NSString *name;
NSString *email;
NSString *replyTo;
NSString *organization;
NSString *signature;
NSString *vCard;
NSString *sentFolderName;
NSString *sentBCC;
NSString *draftsFolderName;
NSString *templatesFolderName;
struct
{
int composeHTML:1;
int reserved:31;
} idFlags;
}
- (void) setName: (NSString *) _value;
- (NSString *) name;
- (void) setEmail: (NSString *) _value;
- (NSString *) email;
- (void) setReplyTo: (NSString *) _value;
- (NSString *) replyTo;
- (void) setOrganization: (NSString *) _value;
- (NSString *) organization;
- (void) setSignature: (NSString *) _value;
- (NSString *) signature;
- (BOOL) hasSignature;
- (void) setVCard: (NSString *) _value;
- (NSString *) vCard;
- (BOOL) hasVCard;
- (void) setSentFolderName: (NSString *) _value;
- (NSString *) sentFolderName;
- (void) setSentBCC: (NSString *) _value;
- (NSString *) sentBCC;
- (void) setDraftsFolderName: (NSString *) _value;
- (NSString *) draftsFolderName;
- (void) setTemplatesFolderName: (NSString *) _value;
- (NSString *) templatesFolderName;
@end */
- (NSArray *) allIdentities
{
NSArray *identities;
[self mailAccounts];
identities = [mailAccounts objectsForKey: @"identities"];
return [identities flattenedArray];
}
- (NSDictionary *) primaryIdentity
{
NSDictionary *defaultAccount;
[self mailAccounts];
defaultAccount = [mailAccounts objectAtIndex: 0];
return [[defaultAccount objectForKey: @"identities"] objectAtIndex: 0];
}
/* folders */
// TODO: those methods should check whether the traversal stack in the context